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

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

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

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

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案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变量
        猜你喜欢
        • 1970-01-01
        • 2012-05-12
        • 2016-10-16
        • 1970-01-01
        • 2018-02-21
        • 2016-11-06
        • 2021-10-15
        • 1970-01-01
        • 2014-07-22
        相关资源
        最近更新 更多