2016-12-08 1 views
1

Meine aktuelle URL ist http://localhost:8000/category/1Wie lek-Klasse in Laravel aktiv?

ich aktive Klasse von li per URL-ID zu setzen versuchen.

ersten Versuchen:

@foreach($category as $categories) 
     <a href="{{ route('category.index',$categories->id)}}" class="list-group-item {{ Request::is($categories->id) ? 'active' : '' }}">{{$categories->name}}</a> 
@endforeach 

Ausgang: Nein li aktive Klasse bekommt

2. Versuchen:

@foreach($category as $categories) 
    <a href="{{ route('category.index',$categories->id)}}" class="list-group-item @if (Request::url('/category/{{$categories->id}}')) {{'active'}} @endif">{{$categories->name}}</a> 
@endforeach 

Ausgang: alle li wird aktiv Klasse

Angenommen, die URL ist http://localhost:8000/category/2, dann möchte ich die zweite li hervorgehoben werden.

Danke.

+0

Nicht verwandt, aber sind Sie sicher über '@foreach ($ category as $ categories)'? Normalerweise ist es '@foreach ($ categories as $ category)' –

+0

@AlexeyMezenin in meinem Controller Ich habe es als Kategorie statt Kategorien, die ist meine ich schrieb es anders herum. – Phoenix

Antwort

2

Versuchen Sie folgendes:

{{ request()->segment(2) == $categories->id ? 'active' : '' }} 
+0

können Sie mir sagen, warum haben Sie 2 im Segment bestanden. – Phoenix

+0

@Phoenix, weil es das zweite Segment von URI ist. Zum Beispiel gibt 'segment (1)' 'Kategorie' zurück. –

0

Sie Laravel die verwenden können request()->segments() Verfahren die Segmente zu erhalten (in Form von Array) aus der URL wie folgt aus:

@php 
    $segments = request()->segments(); 
@endphp 

@foreach($category as $categories) 
    <a href="{{ route('category.index',$categories->id)}}" class="list-group-item {{ (last($segments) == $category->id) ? 'active' : '' }}>{{$categories->name}}</a> 
@endforeach 

hoffe, das hilft!