2016-07-21 5 views
0

Ich habe gerade Laravel gelernt, und ich möchte einen zweiten Controller in mein Hauptlayout integrieren.Fügen Sie mehr Controller auf einer einzigen Seite hinzu

Die Route ist das Standardstammverzeichnis: /

Und das Layout sieht folgendermaßen aus:

<div class="container"> 
    @yield('content') 
</div> 
<div class="basket"> 
    ~basket comes here~ 
</div> 

Ich möchte den Korb des Benutzers zeigen, aber ich brauche DB-Abfragen für das, und ich kann Ich finde keinen Weg, einen anderen Controller einzuschließen, zumindest nicht mit Routing.

Ich frage nicht wirklich nach Code (Leider habe ich keinen besseren Platz für diese Frage gefunden), wahrscheinlich brauche ich nur einen Entwurfstipp, ich habe wirklich das Gefühl, ich versuche es falsch zu machen, da ich es nicht konnte Finde keine relevanten/hilfreichen Informationen dafür.

Und ich möchte nicht den Warenkorb in jedem Controller, der meine main Layout verwendet.

Jede Art von Hilfe apreciated würde, bin ich wirklich verloren :)

Antwort

1

Sie view composers verwenden sollten. Öffnen Sie AppServiceProvider und innerhalb des boot() Methode fügen Sie folgendes:

view()->composer('your.layout.name', function ($view) { 
    $basket = ...// Your basket query here 

    $view->with('basket', basket); 
}); 

Diese im Grunde sagt, wenn Ansicht mit dem Namen your.layout.name zusammengesetzt ist, fügen Sie Variable mit Namen $ Korb.

+0

Ich lese tatsächlich die Laravel-Dokumentation, und ich weiß nicht, wie ich das vermisst habe! Danke für deine Antwort, genau das, wonach ich gesucht habe. –