Laravel blade - 如果满足条件,则添加一个类

Ela*_*ley 7 php laravel blade laravel-4

这很简单,但我似乎无法用刀片做到这一点,我通常会回到php,但是,因为我不能用刀片声明一个新的php变量(没有打印它,就是这样)应该怎么做如果满足某个条件,我会更改一个简单的类名吗?以这个链接为例,我只想在$ hostess-> active = 1时添加"active"类

 {{ HTML::linkRoute('hostesses.index', 'Archived', $params, array('class' => 'btn btn-default')) }}
Run Code Online (Sandbox Code Playgroud)

我知道如何用PHP做到这一点,但如何用刀片完成​​呢?

Kri*_* PC 19

现在我们可以使用带有@class这样的指令的条件类

@php
    $isActive = false;
    $hasError = true;
@endphp

<span @class([
    'p-4',
    'font-bold' => $isActive,
    'text-gray-500' => ! $isActive,
    'bg-red' => $hasError,
])></span>
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/docs/8.x/blade#conditional-classes


JP *_*nco 14

你可以这样做:

// App/Http/routes.php
Route::get('foo/bar', 'FooController@bar);


//Your blade file
<li class="{{ Request::path() ==  'foo/bar' ? 'active' : ''  }}">
                        <a href="{{ url('foo/bar') }}"></i> Bar</a>
                    </li>
Run Code Online (Sandbox Code Playgroud)


The*_*pha 6

像这样的东西?

{{ HTML::linkRoute('hostesses.index', 'Archived', $params, array('class' => $hostess->active ? 'btn btn-info' : 'btn btn-default')) }}
Run Code Online (Sandbox Code Playgroud)


Guc*_*112 5

还有另一种选择:

<li class="@if(Request::is('/')) is-active @endif">
    <a href="{{ route('index') }}">Home</a>
</li>
Run Code Online (Sandbox Code Playgroud)