所以基本上我的所有视图都在使用header.blade.php,因为我将它包含在我的主布局中。我需要在每个视图中都向header传递数据。因此,是否有办法只向include传递数据,而不是在每个视图中为header传递数据?
如果您想发送数据,有一个选择。只是 到包含的视图是使用 查看作曲家. 他们甚至会在试图准备一个观点的情况下开火。@include
view()->composer('header', function($view) {
$view->with('data', 'some data');
});
你不需要这样做。但你可以:
父视图可用的所有变量都将提供给包含的视图。尽管被包含的视图将继承父视图中所有可用的数据,你也可以传递一个额外的数据数组给被包含的视图。
@include('view.name', ['some' => 'data'])
实际上,将数据共享给所有视图的最佳和更快的方法可能是只使用
AppServiceProvider
与Jeff的答案不同,你可以使用share方法代替composer方法,更快地实现你的目标。
只要在AppServiceProvider的boot方法中传递你想要的数据就可以了,就像下面这样。
public function boot()
{
View::share('key', 'value');
}
查看更多 这个