如何在blade中显示和隐藏组件


laravel 4 - how to show and hide components in blade?

我有面包屑在我的master.blade.php文件,我希望面包屑在任何地方使用,但主页。blade.php.

现在这是我如何添加链接到面包屑在其他页面,如"关于"。about.blade.php:

@section('breadcrumbs')
    @parent
    <li class="last-breadcrumb">
        About
    </li>
@stop
master.blade.php中的

:

<div class="container">
    <div class="breadcrumb-container">
        <ul class="breadcrumb">
            @section('breadcrumbs')
            <li>
                <a href="/homepage/" title="homepage">
                    homepage
                </a>
            </li>
            @show
        </ul>
    </div>
</div>

,但我不想在主页时显示面包屑代码。

复制每个about.blade/X的代码。刀片文件似乎是个坏主意…

你可以在你的控制器中设置一个值,你通过像$data['breadcrumb'] = true这样的make/redirect传递,并将你的breadcrumb代码包装在一个条件中。这种类型的系统也适用于错误和成功消息,因为您也可以从控制器发送内容。然后你会发送一个数组的值,而不是true

叶片模板

<div class="container">
    @if($breadcrumb)
    <div class="breadcrumb-container">
        <ul class="breadcrumb">
            @section('breadcrumbs')
            <li>
                <a href="/homepage/" title="homepage">
                    homepage
                </a>
            </li>
            @show
        </ul>
    </div>
    @endif
</div>

您可以检查URI,看看是否要显示它。这是逻辑,在你看来,这通常是不赞成的,但这是我能想到的最简单的方法。

<div class="container">
    <div class="breadcrumb-container">
        <ul class="breadcrumb">
            @if(Route::uri() == '/')
            <li class="last-breadcrumb">
                About
            </li>
            @endif
            <li>
                <a href="/homepage/" title="homepage">
                    homepage
                </a>
            </li>
            @show
        </ul>
    </div>
</div>

根据您的主页所使用的URI,您可能需要调整条件

如果你在主模板中使用@yield,那么它只会在section被定义时显示内容。@content要求始终定义section