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

时间:2016-04-15 21:43:25

标签: php laravel laravel-5 blade laravel-blade

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

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

在test.blade.php中,我有:

<?php print_r($events) ?>

我得到了:

  

php行11中的ErrorException:   未定义的变量:事件(查看:... / test.blade.php)

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

2 个答案:

答案 0 :(得分:3)

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

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

您还有其他选择。例如:

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

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

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

答案 1 :(得分:1)

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

您还可以在刀片中显示这样的值(用于测试)

{{ dd($events) }}