Laravel-Klinge – Fügen Sie eine Klasse hinzu, wenn eine Bedingung erfüllt ist

Lesezeit: 2 Minuten

Das ist einfach, aber ich kann es anscheinend nicht mit Blade machen, und ich gehe normalerweise zurück zu PHP, aber da ich keine neue PHP-Variable mit Blade deklarieren kann (ohne sie zu drucken), wie sollte Ich ändere einen einfachen Klassennamen, wenn eine bestimmte Bedingung erfüllt ist? Nehmen Sie dieses Beispiel eines Links, ich möchte nur die Klasse “aktiv” hinzufügen, wenn $hostess->active=1

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

Ich weiß, wie man das mit PHP macht, aber wie würde es mit Blade gemacht werden?

Benutzeravatar von JP Blanco
JP Blanco

Sie könnten dies tun:

// App/Http/routes.php
Route::get('foo/bar', 'FooController@bar);
// Your blade file
<li class="{{ Request::path() ==  'foo/bar' ? 'active' : ''  }}">
    <a href="https://stackoverflow.com/questions/23382907/{{ url("foo/bar') }}"></i> Bar</a>
</li>

  • Perfekt für Layouterweiterungen

    – Eduard A

    4. Juni 2019 um 17:23 Uhr

Benutzeravatar von Gucu112
Gucu112

Es gibt auch eine andere Möglichkeit:

<li class="@if(Request::is("https://stackoverflow.com/")) is-active @endif">
    <a href="{{ route('index') }}">Home</a>
</li>

Jetzt können wir bedingte Klassen mit verwenden @class Richtlinie wie diese

@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

  • scheint damit nicht zu funktionieren $loop Variable

    – teran

    2. Dezember 2021 um 12:01 Uhr

Etwas wie das?

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

Hier ist ein viel klarerer Weg, dies zu tun. Welche sollte mit dem Routennamen übereinstimmen.

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

  • Dies ist der beste Ansatz, insbesondere wenn Sie eine Variable oder ein Gebietsschema in Ihrem Pfad haben

    – Milch

    8. Mai 2021 um 19:37 Uhr

Benutzeravatar von Lonare
Lonar

Wenn Ihre Abfrage einen Parameter enthält, können Sie Folgendes tun:

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>

  • Dies ist der beste Ansatz, insbesondere wenn Sie eine Variable oder ein Gebietsschema in Ihrem Pfad haben

    – Milch

    8. Mai 2021 um 19:37 Uhr

Benutzeravatar von Kmaj
Kmaj

Dies ist eine weitere Möglichkeit, die Sie ausprobieren können!

<li class="{{ Route::has('login') ? 'bg-dark' : ''  }}"></li>

1448710cookie-checkLaravel-Klinge – Fügen Sie eine Klasse hinzu, wenn eine Bedingung erfüllt ist

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy