我在布局文件app.blade.php中显示了一个变量。该变量在全局"视图编辑器"中定义了默认值。我需要从一个控制器方法中覆盖该值,我该怎么做?
这是一个棘手的问题。问题是,在控制器返回视图后,视图编辑器会被触发。但是,如果已经设置了值,您可以在视图编辑器内部进行检查:
public function compose(View $view)
{
if(!$view->offsetExists('foo')){
$view->with('foo', 'default');
}
}
当你想"覆盖"控制器中的默认值时:
return view('view.name')->with('foo', 'bar');
在控制器中,您可以使用以下内容:
$view = view('view.name')->with(...); // This will trigger the composer
这将返回渲染的(composer已经运行)View
,然后您可以使用以下内容将值设置到变量中:
$view->variablename = 'value'; // You may also check it using $view->offsetExists(...)
然后返回如下视图:
return $view;