laravel - 检查 View 中是否定义了某个部分

标签 laravel laravel-5 twitter-bootstrap-3 laravel-blade

使用 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/

相关文章:

php - Return Back 在 Excel::load() 函数中起作用:Laravel 4.2

Laravel/Lumen 更新至 5.5,路由损坏

mysql - 如何在laravel中搜索属于某个标签的所有文章

php - Laravel 5.1 xmlHttpRequest AJAX POST TokenMismatchException

javascript - 使用 jQuery cookie 或本地存储保存 .addClass

php - 在 OR 上下文中使用多个 Laravel 作用域

facebook - 使用 Laravel 4 使用 Hybridauth 在本地主机服务器上测试 Facebook 登录

php - 在 Laravel 5.4.36 中使用模型搜索数据

javascript - Bootstrap 推/拉 - Div 未正确对齐

html - Bootstrap3 - 垂直居中对齐表格内容