测试@yield 值

Testing a @yield value

我想将 class 添加到我的主模板中的组件之一,但仅限于特定页面。

有没有办法测试@yield 的值?

到目前为止,我对此进行了测试,但它没有用(ie 只要设置了页面名称,就会添加 class,无论其内容如何):

<div class="
    @hasSection('pagename') && @yield('pagename') == 'home'
        myclass
    @endif
">

您可以尝试组合使用 @if 指令和 request() 辅助程序。大致如下:

@if(request()->routeIs('some-named-route')) {{ echo 'my-class' }} @endif

Extending blade 将提供可重复使用的指令:

// AppServiceProvider.php
public function boot()
{
    Blade::if('custom', function ($route) {
        return request()->routeIs(route);
    });
}

// view.blade.php
@custom('some-route')
    'my-class'
@endcustom