Laravel:将变量从Route :: get静态页面传递给视图

时间:2016-11-22 20:04:01

标签: php laravel

我正在与Laravel合作,我不习惯。目前,我需要向页面添加描述和标题标签(已经由其他人编码的现有页面中缺少这些标签)。

我看到有些静态页面没有任何控制器,但也在routes.php中定义。对于instnace,其中一个是这样的:

Route::get('feedback', function()
{
    return view('feedback');
});

它呈现使用home.layout的feedback.blade。我不明白如何将此routes.php中的变量传递给home.layout。

如果我理解,我将能够定义一些类似

的数组

$meta['title']$meta['description']并在布局中呈现这些内容。 这似乎是一个基本问题,但我真的试图谷歌,没有结果。

我试过这样的话:

Route::get('feedback', function()
{
    $meta = [
        'title' => 'About title',
        'description' => 'About description'    
    ];
    return view('feedback', ['meta' => $meta]);
});

和刀片布局

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
    {{ isset($meta) ? $meta->title : 'test'  }}

但它导致错误。

1 个答案:

答案 0 :(得分:3)

您可以使用以下某些选项:

Route::get('feedback', function()
{
    return view('feedback')->with('variable', $variable);
});


Route::get('feedback', function()
{
    return view('feedback', ['variable' => $variable]);
});


Route::get('feedback', function()
{
    return view('feedback')->with(compact('variable'));
});

然后在刀片文件中,您可以使用$ variable作为局部变量。