2017-09-07 2 views
-1

Ich habe die Hauptvorlage home.blade.php, die Abschnitt enthält, in dem eine andere Inhaltsdateien abgelegt wird.Wie zeige ich das Menü auf allen Seiten Laravel?

In dieser Datei habe ich Seitenleiste Menü verlassen.

Auch ich habe benutzerdefinierte class Menu zur Anzeige von Menüpunkten.

Möchten Sie diese benutzerdefinierte Klasse/Service aufrufen, wird dieses Menü auf allen Seiten im Projekt angezeigt?

Ich möchte keine Instanz von class Menu in jeder Controller-Klassen erstellen.

+0

Schauen Sie sich diese Laravel doc: https://laravel.com/docs/5.4/blade – GoogleMac

Antwort

1

Was Sie wollen, ist Laravels Ansicht :: share() Methode. Sie können die Klasse in Ihrer AppServiceProvider Klasse instanziiert und die Variable zur Verfügung, um alle Ihre Ansichten https://laravel.com/docs/5.5/views#sharing-data-with-all-views

+0

Was besser ist, zu verwenden: Ansicht Komponisten oder Teilen Aussicht? Unterstützen beide Singlton-Modell? – user3573738

+0

Die sind irgendwie austauschbar (ich benutze share() für alles), aber View-Composer scheinen eher für die Klasseninstanziierung geeignet, also ist das wahrscheinlich die beste Option. –

+0

Können Sie ein Beispiel für Code teilen, wie Sie dies schreiben und verwenden? Weil in den Dokumenten nicht genügend Informationen vorhanden sind – user3573738

1

eine separate Datei menu.blade.php erstellen und Menü Code in dieser Datei schreiben, menu.blade.php in anderen Dateien enthalten so was. verwenden diesen Code zu erweitern

@extends ('Menü')

Verwandte Themen