使用 Laravel,如何根据 View 中是否定义了特定部分来修改布局?
我知道如果该部分不存在,我可以显示一些默认文本,但想象一下以下场景:
<div class="row">
<div class="col-sm-9">
@yield('content')
</div>
<div class="col-sm-3">
@section('sidebar')
@show
</div>
</div>
因此,如果我的 View 定义了@section“侧边栏”,则效果很好。但如果 View 没有定义侧边栏,我不希望我的主要内容列是 col-sm-9,我希望它是 col-sm-12。我希望我能做这样的事情:
@if(@section('sidebar'))
<div class="row">
<div class="col-sm-9">
@yield('content')
</div>
<div class="col-sm-3">
@section('sidebar')
@show
</div>
</div>
@else
<div class="row">
<div class="col-sm-12">
@yield('content')
</div>
</div>
@endif
但是这似乎不起作用。谁能提出替代方案吗?
谢谢!
最佳答案
Laravel 5.2 添加了一个 @hasSection
指令,它完全符合您的要求。
由于某种原因,5.3 或 5.4 文档中没有提及它。
@hasSection('title')
<title>@yield('title') - {{ config('app.name') }}</title>
@else
<title>{{ config('app.name') }}</title>
@endif
关于laravel - 检查 View 中是否定义了某个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32888762/