2017-09-07 1 views
-1

J'ai le modèle principal home.blade.php qui contient la section à l'intérieur de laquelle se trouvent d'autres fichiers de contenu.Comment afficher le menu sur toutes les pages Laravel?

Dans ce fichier j'ai quitté le menu de la barre latérale.

J'ai également personnalisé class Menu pour afficher les éléments de menu.

Pour appeler cette classe/service personnalisé, ce menu s'affichera sur toutes les pages du projet?

Je ne souhaite pas créer d'instance de class Menu dans chaque classe de contrôleur.

+0

Vérifiez cette Laravel doc: https://laravel.com/docs/5.4/blade – GoogleMac

Répondre

1

Ce que vous voulez est la méthode de Laravel View :: share(). Vous pouvez instancier la classe dans votre classe AppServiceProvider et rendre la variable disponible pour toutes vos vues https://laravel.com/docs/5.5/views#sharing-data-with-all-views

+0

Quel est préférable d'utiliser: Voir Compositeurs ou Partager Vue? Soutenez-vous le modèle de singlton? – user3573738

+0

Ils sont en quelque sorte interchangeables (j'utilise share() pour tout), mais les compositeurs de vue semblent plus adaptés à l'instanciation de classe, ce qui est probablement votre meilleure option. –

+0

Pouvez-vous partager un exemple de code, comment écrire et utiliser? Parce qu'il n'y a pas assez d'informations dans les docs – user3573738

1

créer un menu.blade.php séparé de fichier et d'écrire du code de menu dans ce fichier, menu.blade.php inclure dans d'autres fichiers comme ça. utiliser pour étendre le code

@extends ('menu')