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