2 回答
TA贡献1853条经验 获得超6个赞
所以在 laravelBlade模板中,变量的作用域是从父级传递给子级的。
Blade tempalte的继承
因此,如果您从这样的视图开始:
return view('template-1')->with([
'var1' => 'Test One',
'var2' -> 'Test Two',
]);
在您的刀片模板中,您可以使用以下{{ }}语法回显这些:
{{ $var1 }} # Test One
{{ $var2 }} # Test Two
现在假设您正在使用 an @include,您将在范围内同时获得var1&var2并能够覆盖它们并为您分配新变量,如下所示:
@include('_includes.include-1', ['var2' => 'Foo', 'var3' -> 'Bar'])
{{ $var1 }} # Test One
{{ $var2 }} # Foo
{{ $var3 }} # Bar
现在,如果您想让一个变量可用于所有扩展给定模板的刀片模板(即,如果 "template-1" extends app)。您可以像这样绑定全局变量ServiceProvider;
BladeServiceProvider
View::share('var4', 'Foo-Bar']);
现在您可以访问var4所有模板
{{ $var1 }} # Test One
{{ $var2 }} # Test Two
{{ $var4 }} # Foo-Bar
TA贡献1796条经验 获得超7个赞
上面的答案是信息性的,因此被选为接受的答案。然而,我找到了一个简单的解决方案,将它放在 /routes/web.php 的顶部,以便基本视图(没有控制器)可以访问它并且所有刀片都有范围
\View::share([
"myvariable1"=>"myValue1",
"myvariable2"=>"myValue2";
]);
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报