Laravel 5:如何将变量从控制器方法传递到app.blade.php?

时间:2015-02-09 19:05:18

标签: php laravel laravel-5

我在我的布局文件app.blade.php中显示了一个变量。该变量具有在我的全局视图作曲家中定义的默认值。我需要在控制器方法中覆盖该值,我该怎么做?

2 个答案:

答案 0 :(得分:2)

这是一个棘手的问题。问题是视图编辑器在控制器返回视图后触发。但是,如果已设置值,则可以在视图编辑器内部进行检查:

public function compose(View $view)
{
    if(!$view->offsetExists('foo')){
        $view->with('foo', 'default');
    }
}

当您想要“覆盖”控制器中的默认值时:

return view('view.name')->with('foo', 'bar');

答案 1 :(得分:0)

在您的控制器中,您可以使用以下内容:

$view = view('view.name')->with(...); // This will trigger the composer

这将返回渲染(作曲家已经跑过)View然后您可以使用以下内容将值设置为变量:

$view->variablename = 'value'; // You may also check it using $view->offsetExists(...)

然后返回视图:

return $view;