为什么 Laravel 不将我的变量传递给 blade 模板?

Why won't Laravel pass my variable to blade template?

我正在使用 Laravel 5.2。在 routes.php 中,我有:

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

在test.blade.php中,我有:

<?php print_r($events) ?>

我得到:

ErrorException in ....php line 11: Undefined variable: events (View: .../test.blade.php)

我的 get() 语句工作正常(print_r($events) 在 routes.php 中工作)。为什么它没有传递给 blade 模板?

您没有正确传递数据。试试这个:

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

您还有其他选择。例如:

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

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

来源:https://laravel.com/docs/5.2/views

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

您也可以在 blade 中显示这样的值(用于测试)

{{ dd($events) }}