2016-04-15 13 views
1

Ich benutze Laravel 5.2. In routes.php, ich habe:Warum wird Laravel meine Variable nicht an die Blade-Vorlage übergeben?

Route::get('test', function() { 
    $events = App\Event::get(); 
    return view('test', $events); 
}); 

In test.blade.php, ich habe:

<?php print_r($events) ?> 

Und ich bekomme:

Error in .... php Linie 11: Undefined variable: Ereignisse (Ansicht: .../test.blade.php)

Mein get() Anweisung arbeitet richtig (print_r ($ events) funktioniert in routes.php). Warum wird es nicht an die Blade-Vorlage weitergegeben?

Antwort

3

Sie geben die Daten nicht korrekt weiter. Versuchen Sie dies stattdessen:

return view('test', ['events' => $events]); 

Sie haben andere Optionen auch. Zum Beispiel:

return view('test', compact('events')); 

return view('test')->with(['events' => $events]); 

Quelle: https://laravel.com/docs/5.2/views

+0

Gerade becareful verbindet Menschen 'Master' docs wie die Anzeige ist die unveröffentlichte nächste Version von Laravel. – lagbox

+0

Danke, das funktioniert! Irgendwie wackelig, dass du es so weitergeben musst, nein? – jreikes

1
return view('test', ['events' => $events]); 

Sie auch Wert wie diese können in Klinge (zum Testen)

{{ dd($events) }}