Таким образом, в шаблонах laravel Blade
область действия переменной передается от родителей к детям.
Наследование Tempalte Blade
Так если вы начнете с повторения представления следующим образом:
return view('template-1')->with([
'var1' => 'Test One',
'var2' -> 'Test Two',
]);
В своем шаблоне блейда вы можете отобразить его с синтаксисом {{ }}
:
{{ $var1 }} # Test One
{{ $var2 }} # Test Two
Теперь скажите, что вы используете @include
, вы получите оба var1
& var2
в области видимости и сможете переопределить их, назначив вам новые переменные, например, так:
@include('_includes.include-1', ['var2' => 'Foo', 'var3' -> 'Bar'])
{{ $var1 }} # Test One
{{ $var2 }} # Foo
{{ $var3 }} # Bar
Теперь, если вы хотите сделать переменную доступной для всех шаблонов блейдов, которые расширяют данный шаблон (то есть, если «шаблон-1» расширяет app
). Вы можете связать глобальные переменные в ServiceProvider
следующим образом:
BladeServiceProvider
View::share('var4', 'Foo-Bar']);
Теперь у вас есть доступ к var4
во всех ваших шаблонах
{{ $var1 }} # Test One
{{ $var2 }} # Test Two
{{ $var4 }} # Foo-Bar