这很简单,但我似乎无法用 blade 做到这一点,为此我通常会回到 php,但是,因为我无法用 blade 声明一个新的 php 变量(不打印它,就是这样)如何如果满足特定条件,我应该更改一个简单的类名吗?以这个链接为例,如果 $hostess->active=1
,我只想添加类“active” {{ HTML::linkRoute('hostesses.index', 'Archived', $params, array('class' => 'btn btn-default')) }}
我知道如何用 php 做到这一点,但如何用 blade 做到这一点?
你可以这样做:
// 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>
像这样吗?
{{ HTML::linkRoute('hostesses.index', 'Archived', $params, array('class' => $hostess->active ? 'btn btn-info' : 'btn btn-default')) }}
还有一个选择:
<li class="@if(Request::is('/')) is-active @endif">
<a href="{{ route('index') }}">Home</a>
</li>
现在我们可以像这样使用带有
@class
指令的条件类
@php
$isActive = false;
$hasError = true;
@endphp
<span @class([
'p-4',
'font-bold' => $isActive,
'text-gray-500' => ! $isActive,
'bg-red' => $hasError,
])></span>
这里有一个更清晰的方法来做到这一点。哪个应该与路线名称匹配。
request()->routeIs('admin.cities')
如果您的查询中有参数,那么您可以这样做:
Your URL: https://www.yourdomain.com/a=dark
// Your blade file
<li class="{{ Request::get('a') == 'dark' ? 'active' : '' }}">
<a href="{{ url('foo/bar') }}"></i> Bar</a>
</li>
这是您可以尝试的另一种方式!
<li class="{{ Route::has('login') ? 'bg-dark' : '' }}"></li>