Laravel Blade 条件@Yield
Laravel Blade Conditional @Yield
我有一个 blade 视图,它使用我的模板
@extends('layouts.master')
在该模板中,如果我的 child 视图部分是正确的,我想显示 2 个按钮,而不是必须将它们包含在每个使用该模板的 child 视图中。
例如我的布局(片段)
@yield('buttons')
<div>
<button>BUTTON 1</button>
<button>BUTTON 2</button>
</div>
@show
@yield('content)
这是我的 child 视图
@extends('layouts.master')
@section('buttons',false)
@section('content')
<p>Hello world!</p>
@endsection
我知道它不能像我尝试的那样工作,但这样的事情可能吗?我也尝试过将 @yield('buttons') 包装在 @if 中,但这是不可能的,因为 @yield 显然只能在函数中使用。
在我的主布局中,我将@yield 替换为@section
@section('buttons')
<button>BUTTON 1</button>
<button>BUTTON 2</button>
@endsection
在我的子视图中我使用
@section('buttons','')
这会替换默认值,如果您希望保留默认值并将您的附加内容放在之前或之后,然后在您的附加内容之前或之后使用@parent,例如在我的子视图中:
@section('buttons')
Additional content to be inserted before the buttons in my master layout.
@parent
@endsection
输出:
要在我的主布局中的按钮之前插入的其他内容。按钮 1 按钮 2
我有一个 blade 视图,它使用我的模板
@extends('layouts.master')
在该模板中,如果我的 child 视图部分是正确的,我想显示 2 个按钮,而不是必须将它们包含在每个使用该模板的 child 视图中。
例如我的布局(片段)
@yield('buttons')
<div>
<button>BUTTON 1</button>
<button>BUTTON 2</button>
</div>
@show
@yield('content)
这是我的 child 视图
@extends('layouts.master')
@section('buttons',false)
@section('content')
<p>Hello world!</p>
@endsection
我知道它不能像我尝试的那样工作,但这样的事情可能吗?我也尝试过将 @yield('buttons') 包装在 @if 中,但这是不可能的,因为 @yield 显然只能在函数中使用。
在我的主布局中,我将@yield 替换为@section
@section('buttons')
<button>BUTTON 1</button>
<button>BUTTON 2</button>
@endsection
在我的子视图中我使用
@section('buttons','')
这会替换默认值,如果您希望保留默认值并将您的附加内容放在之前或之后,然后在您的附加内容之前或之后使用@parent,例如在我的子视图中:
@section('buttons')
Additional content to be inserted before the buttons in my master layout.
@parent
@endsection
输出:
要在我的主布局中的按钮之前插入的其他内容。按钮 1 按钮 2