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

Posted

技术标签:

【中文标题】Laravel 刀片 - 如果满足条件,则添加一个类【英文标题】:Laravel blade - Add a class if a condition is met 【发布时间】:2014-06-16 11:13:54 【问题描述】:

这很简单,但我似乎无法用刀片来做到这一点,我通常会为此返回 php,但是,因为我不能用刀片声明一个新的 php 变量(不打印它,也就是说) 如果满足某个条件,我应该如何更改简单的类名?以这个链接为例,我只想添加“活动”类 if $hostess->active=1

  html::linkRoute('hostesses.index', 'Archived', $params, array('class' => 'btn btn-default')) 

我知道如何用 php 做到这一点,但是如何用刀片做到这一点?

【问题讨论】:

【参考方案1】:

你可以这样做:

// 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>

【讨论】:

完美的布局扩展【参考方案2】:

这样的?

 HTML::linkRoute('hostesses.index', 'Archived', $params, array('class' => $hostess->active ? 'btn btn-info' : 'btn btn-default')) 

【讨论】:

【参考方案3】:

还有另一种选择:

<li class="@if(Request::is('/')) is-active @endif">
    <a href=" route('index') ">Home</a>
</li>

【讨论】:

【参考方案4】:

这里有一个更清晰的方法来做到这一点。哪个应该与路由名称匹配。

request()->routeIs('admin.cities')

【讨论】:

这是最好的方法,尤其是当您的路径中有变量或语言环境时【参考方案5】:

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

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

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

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

【讨论】:

似乎不适用于$loop变量

以上是关于Laravel 刀片 - 如果满足条件,则添加一个类的主要内容,如果未能解决你的问题,请参考以下文章

如何在从视图刀片 laravel 加载的 vue 组件上添加条件?

如何在 laravel 刀片视图中打破 foreach 循环?

Laravel 4 路由 - 如果条件不满足,则可以跳过路由

根据 Laravel 5.3 中的条件在刀片模板中插入 html 属性的好方法

Laravel 刀片:你能产生一个默认的部分吗

如果@include 中存在变量,则检查刀片