recherche

Maison  >  Questions et réponses  >  le corps du texte

Si Laravel fonctionne via la couche de classe parent, les paramètres sont transmis à la mise en page Blade.

Pour les variables utilisées dans la mise en page, si les paramètres sont transmis depuis le contrôleur, l'opération doit être répétée pour chaque vue !
Comment résoudre le problème de la transmission du résultat à la mise en page après un calcul pour que toutes les vues soient utilisées (je ne veux pas que le code métier apparaisse dans la vue Mise en page).

par exemple :
1. Gestion des autorisations, définissez différents menus en fonction des différents utilisateurs !
2. Numéros dynamiques dans le menu, tels que [Ordre d'aujourd'hui (50)], ce 50 exige que tous les contrôleurs obtiennent les données puis les transmettent à la vue !

阿神阿神2789 Il y a quelques jours424

répondre à tous(3)je répondrai

  • 迷茫

    迷茫2017-05-16 16:58:01

    Il existe deux façons de le résoudre :

    Premier : TraditionnelViewComposerProvider

    class NavViewComposerProvider extends ServiceProvider {
    
    public function boot(){
        view()->composer('partials.nav', function ($view) {
    
            $view->with('userAtLayout', User::find(Auth::user()->id));
            //根据自己的需求改呗
    
        });
      }
    }
    

    Deuxièmement, les nouvelles fonctionnalités de Laravel 5.1 @inject :

    @inject('var','Class')
    // var 变量名 Class绑定的类名
    
    

    Par exemple, vous pouvez faire ceci :

    @inject('nav','App\SiteNav')
    
    

    Interrogez simplement les données dans SiteNav.

    Digression : Lisez attentivement la documentation et vous pourrez résoudre 80% des problèmes que vous rencontrez.

    Joyeux hacking

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-16 16:58:01

    phpView::share('name', $var)
    

    répondre
    0
  • PHPz

    PHPz2017-05-16 16:58:01

    Les méthodes mentionnées ci-dessus ne sont pas fiables et vous ne pouvez pas obtenir les paramètres d'URL actuels et les transmettre à votre fonction

    répondre
    0
  • Annulerrépondre