use*_*419 20 php laravel laravel-blade
如果我在Laravel刀片中有一个名为RightSideBar.blade.php的布局,则一个区域产量('content')和另一个产量('sidebar').如果扩展RightSideBar的视图没有部分("侧边栏"),是否有内置方式显示默认部分?(我知道你可以默认传递一个值,只是想知道是否有一种方法可以使默认值为部分)
Zol*_*nci 13
大多数时候我们想要多行默认内容,我们可以使用以下语法:
@section('section')
Default content
@show
Run Code Online (Sandbox Code Playgroud)
例如,我在模板文件中有这个:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@show
Run Code Online (Sandbox Code Playgroud)
你可以看到@show和@ stop/@ endsection之间的区别:上面的代码相当于下面的代码:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@stop
@yield('customlayout')
Run Code Online (Sandbox Code Playgroud)
在其他视图文件中,我可以只设置内容:
@section('content')
<p>Welcome</p>
@stop
Run Code Online (Sandbox Code Playgroud)
或者我也可以设置不同的布局:
@section('content')
<p>Welcome</p>
@stop
@section('defaultlayout')
<div>
@yield('content')
</div>
@stop
Run Code Online (Sandbox Code Playgroud)
@stop等同于@endsection.
Laravel 5.2 添加了一个@hasSection指令来检查是否在视图中定义了一个部分。由于某种原因,在 5.3 或 5.4 文档中没有提到它。
@hasSection('sidebar')
@yield('sidebar')
@else
@yield('default-sidebar')
@endif
Run Code Online (Sandbox Code Playgroud)
Although the docs specifies a default only as a string you can in fact pass a view
@yield('sidebar', \View::make('defaultSidebar'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14857 次 |
| 最近记录: |