2016-12-08 3 views
1

Мой текущий URL является http://localhost:8000/category/1Как установить класс li в laravel?

Я пытаюсь установить активный класс Ли, как на URL ид.

первой Try:

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

Выход: Нет литий получает активный класс

второй Try:

@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 

Выход: все литий получает активный класс

Предположим, что url равен http://localhost:8000/category/2, после чего я хочу, чтобы второй li был выделен.

Спасибо.

+0

Не связаны, но вы уверены в '@foreach ($ category as $ categories)'? Обычно это '@foreach ($ categories as $ category)' –

+0

@AlexeyMezenin в моем контроллере, я передал его как категорию, а не категории, которые являются моими, я написал это по-другому. – Phoenix

ответ

2

Попробуйте это:

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

Можете ли вы рассказать мне, почему вы прошли 2 в сегменте. – Phoenix

+0

@Phoenix, потому что это второй сегмент URI. Например, 'segment (1)' будет возвращать 'category'. –

0

Вы можете использовать request()->segments() метод Laravel, чтобы получить сегменты (в виде массива) из URL, как это:

@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 

Надеется, что это помогает!

Смежные вопросы