【问题标题】:Why won't Laravel pass my variable to blade template?为什么 Laravel 不会将我的变量传递给刀片模板?
【发布时间】:2016-08-08 00:38:24
【问题描述】:

我正在使用 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 在 ....php 第 11 行: 未定义变量:事件(查看:.../test.blade.php)

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

【问题讨论】:

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


    【解决方案1】:

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

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

    您还有其他选择。例如:

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

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

    【讨论】:

    • 小心将人们链接到“主”文档,因为那是 laravel 未发布的下一个版本。
    • 谢谢,这行得通!有点奇怪,你必须这样通过,不是吗?
    【解决方案2】:
    return view('test', ['events' => $events]);
    

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

    {{ dd($events) }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 2014-12-08
      • 2021-07-17
      • 2019-08-12
      • 1970-01-01
      • 2018-09-16
      相关资源
      最近更新 更多