我的变量似乎在刀片视图中不可用

时间:2017-06-28 08:20:33

标签: php html laravel laravel-5 blade

我的路线......

   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 varible,任何想法?

3 个答案:

答案 0 :(得分:2)

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

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

或者

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

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

您可以在此处的文档中查看此示例:https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/Using_js-ctypes/Type_conversion

答案 1 :(得分:1)

更改此行

return view('test', $word);

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

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

答案 2 :(得分:1)

要完成Karl的回答,你可以在那里看到一个例子:https://laravel.com/docs/5.4/views#creating-views