【问题标题】:laravel 4 - how to show and hide components in blade?laravel 4 - 如何在刀片中显示和隐藏组件?
【发布时间】:2014-06-22 23:32:58
【问题描述】:

我的 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 文件的代码似乎是个坏主意..

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2020-08-22
          • 1970-01-01
          • 2015-05-13
          • 1970-01-01
          • 2018-09-24
          • 2018-12-12
          • 2019-02-05
          • 2020-06-18
          • 2021-02-14
          相关资源
          最近更新 更多