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?
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>
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
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')
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>
Kmaj
Dies ist eine weitere Möglichkeit, die Sie ausprobieren können!
<li class="{{ Route::has('login') ? 'bg-dark' : '' }}"></li>
144871 0 0 cookie-check Laravel-Klinge – Fügen Sie eine Klasse hinzu, wenn eine Bedingung erfüllt ist yes