Laravel 边栏选项卡:是否可以生成默认部分

2022-08-30 15:48:38

如果我有一个布局,在 中调用 ,一个区域和另一个区域。RightSideBar.blade.phpLaravel bladeyield('content')yield('sidebar')

是否有内置方式来显示 一个 如果正在扩展的视图没有 ?default partialRightSideBarsection('sidebar')

我知道你可以默认传递一个,只是想知道是否有办法使默认值成为部分。


答案 1

是的,您可以传递默认值

查看文档

@yield('sidebar', 'Default Content');

这基本上在子模板没有时放置默认输出@section('sidebar')


答案 2

大多数时候,我们想要多行默认内容,我们可以使用以下语法:

@section('section')
    Default content
@show

例如,我在模板文件中有这个:

@section('customlayout')
    <article class="content">
        @yield('content')
    </article>
@show

您可以看到@show和@stop/@endsection之间的区别:上面的代码等效于下面的代码:

@section('customlayout')
    <article class="content">
        @yield('content')
    </article>
@stop

@yield('customlayout')

在其他视图文件中,我只能设置内容:

@section('content')
    <p>Welcome</p>
@stop

或者我也可以设置不同的布局:

@section('content')
    <p>Welcome</p>
@stop
@section('defaultlayout')
    <div>
        @yield('content')
    </div>
@stop

@stop等效于@endsection。


推荐