【问题标题】:My variable does not seem to be available in blade view我的变量在刀片视图中似乎不可用
【发布时间】:2017-12-01 12:08:33
【问题描述】:

我的路线...

   Route::get('/test', function () {

    $word = ['Hello'];



    return view('test', $word);
});

我的刀片视图...

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Laravel Quickstart - Basic</title>
    <link href="{{ asset('/css/app.css') }}" rel="stylesheet"/>
    <link href="{{ asset('/css/Test.css') }}" rel="stylesheet"/>
    <!-- CSS And JavaScript -->
</head>

<body>

<div class="container">
    <nav class="navbar navbar-default">
        {{$word}}
    </nav>
</div>



</body>
</html>

通过浏览器访问应用时出现以下错误...

(2/2) ErrorException 未定义变量:word(查看: /home/vagrant/Code/Laravel/resources/views/test.blade.php)

当我从刀片视图中删除 $word 并替换为静态字符串“test”时,它会正确显示。

不知道为什么刀片视图看不到 $word 变量,有什么想法吗?

【问题讨论】:

  • 使用这个:- return view('test', ['word' =&gt; $word]); 。现在您可以通过{{ $word }}访问它

标签: php html laravel laravel-5 blade


【解决方案1】:

您需要通过以下两种方式之一将其返回到视图中:

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

或者

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

这些方法中的任何一种都可以让您在刀片文件中使用 $word 变量

您可以在此处的文档中查看此示例:https://laravel.com/docs/5.4/blade#displaying-data

【讨论】:

    【解决方案2】:

    改变这一行

    return view('test', $word);
    

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

    该变量将在您的刀片中可用。

    【讨论】:

      【解决方案3】:

      要完成 Karl 的回答,您可以在此处查看示例:https://laravel.com/docs/5.4/views#creating-views

      【讨论】:

      • 虽然这可能会回答问题,但it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
      猜你喜欢
      • 2019-03-14
      • 2015-03-13
      • 2018-07-24
      • 1970-01-01
      • 2014-03-15
      • 2017-08-24
      • 2019-01-22
      • 2017-02-08
      • 1970-01-01
      相关资源
      最近更新 更多