这可能是一件简单的事情,但它却让我着迷。
所以,我的布局刀片模板有这样的:
@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#include-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