在 Laravel 8 中将视图变量传递给包含的布局模板
Passing View Variable to Included Layout Template in Laravel 8
这可能是一件简单的事情,但它让我费尽心思。
所以,我的布局 blade 模板是这样的:
@include('layouts.partials.sidebar')
{{ $slot }}
@include('layouts.partials.footer')
@include('layouts.partials.scripts')
我创建了一个加载模板的视图。我假设这个在 $slot.
中被解析
return view('request', [
'boo' => 'Hoo'
]);
没问题,页面加载并且变量 'boo' 可以作为 'requests' 模板中的 {{ $boo }} 访问。
但我的问题是,如何将 'boo' 变量传递给布局文件中的包含文件?在这种情况下:
@include('layouts.partials.scripts')
那么,在 'layouts.partials.scripts' 我怎样才能访问 {{ $boo }}?目前我只是收到一个未定义的索引错误。
非常感谢您的帮助。
@include('layouts.partials.scripts', ['boo' => 'Hoo'])
Laravel 文档:https://laravel.com/docs/8.x/blade#including-subviews
如果您有一个像导航、页眉或侧边栏这样的部分,它是主布局的一部分,您可以从中组成其他视图,并且它需要一些不会从一个视图更改为另一个视图的数据,例如导航链接。
然后,您可以在服务提供者中定义视图编辑器 - boot() 方法,而不是从每个控制器方法传递数据
//Service Provider's boot method
public function boot()
{
View::composer('layouts.partials.sidebar', function ($view) {
//$links = get the data for links
return $view->with('links', $links);
});
}
Laravel 操作:https://laravel.com/docs/master/views#view-composers
这可能是一件简单的事情,但它让我费尽心思。
所以,我的布局 blade 模板是这样的:
@include('layouts.partials.sidebar')
{{ $slot }}
@include('layouts.partials.footer')
@include('layouts.partials.scripts')
我创建了一个加载模板的视图。我假设这个在 $slot.
中被解析return view('request', [
'boo' => 'Hoo'
]);
没问题,页面加载并且变量 'boo' 可以作为 'requests' 模板中的 {{ $boo }} 访问。
但我的问题是,如何将 'boo' 变量传递给布局文件中的包含文件?在这种情况下:
@include('layouts.partials.scripts')
那么,在 'layouts.partials.scripts' 我怎样才能访问 {{ $boo }}?目前我只是收到一个未定义的索引错误。
非常感谢您的帮助。
@include('layouts.partials.scripts', ['boo' => 'Hoo'])
Laravel 文档:https://laravel.com/docs/8.x/blade#including-subviews
如果您有一个像导航、页眉或侧边栏这样的部分,它是主布局的一部分,您可以从中组成其他视图,并且它需要一些不会从一个视图更改为另一个视图的数据,例如导航链接。
然后,您可以在服务提供者中定义视图编辑器 - boot() 方法,而不是从每个控制器方法传递数据
//Service Provider's boot method
public function boot()
{
View::composer('layouts.partials.sidebar', function ($view) {
//$links = get the data for links
return $view->with('links', $links);
});
}
Laravel 操作:https://laravel.com/docs/master/views#view-composers