laravel 4 - 如何在刀片中显示和隐藏组件?

时间:2014-05-06 11:18:48

标签: php laravel laravel-4 blade

我的master.blade.php文件中有面包屑,我希望面包屑可以在任何地方使用但是homepage.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>

但是当我使用homepage.blade时,我根本不想显示面包屑代码。

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

3 个答案:

答案 0 :(得分:1)

您可以在控制器中设置一个使用make / redirect传递的值,如$data['breadcrumb'] = true,并将条带符号包装在条件中。这种系统也适用于错误和成功消息,因为您可以从控制器发送内容。然后你会发送一个数值而不是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>

答案 1 :(得分:1)

您可以检查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,您可能需要调整条件。

答案 2 :(得分:1)

如果您在主模板中使用@yield,那么只有在定义了部分后才会显示内容。 @content要求始终定义该部分。