刀片视图'有堆栈'条件

时间:2017-06-22 18:36:20

标签: php laravel laravel-5 blade laravel-blade

我想从父布局检查孩子是否推送了什么。

与我使用hasSection方法检查View::hasSection('section-name')的方式相同。我正在寻找类似的东西:hasStack

目的是:

@if(/* has stack 'foo' */)
    <div id='foo'>
        @stack('foo')
    </div>
@endif

最好的方法是什么?

[注意]我正在处理Laravel 5.4

1 个答案:

答案 0 :(得分:0)

我正在使用 Laravel 7 和以下工作来检查推送的内容:

@if($__env->yieldPushContent('foo'))
   
    <p>There is something in the "foo" stack.</p>

@endif

您可以将其放入 custom blade directive

    Blade::if('hasStack', function($stackName) {
        return !empty(view()->yieldPushContent($stackName));
    });

并像这样使用它:

@hasStack('foo')

    <p>There is something in the "foo" stack.</p>

@endhasStack

请注意 - @end 部分不会将指令名称驼峰式命名,因此它是 @endhasStack,而不是 @endHasStack。