Задать вопрос
@procode
Разработчик

Как в Laravel принято устанавливать параметр active для пункта меню (bootstrap 4)?

Здравствуйте.

Стандартная ситуация: нужно отобразить пункт меню в виде активного в зависимости от текущего uri.

Без использования javascript.

Как в Laravel принято решать этот вопрос?

Где именно рендерить меню в зависимости от uri?

У меня там так получается, что на одно меню - по сути несколько контроллеров (у страниц разный функционал)

То есть рендерить в контроллерах - не вариант. Во вьюху пихать много кода тоже не очень хочется...

Что посоветуте?

Спасибо.
  • Вопрос задан
  • 2000 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@procode Автор вопроса
Разработчик
Пока что нашел такое для представления:

<li class="{{ Request::is('products*') ? 'active' : '' }}">

    <a href="{!! route('products.index') !!}"><span>Products</span></a>

</li>



<li class="{{ Request::is('tags*') ? 'active' : '' }}">

    <a href="{!! route('tags.index') !!}"><span>Tags</span></a>

</li>



<li class="{{ Request::is('items*') ? 'active' : '' }}">

    <a href="{!! route('items.index') !!}"><span>Items</span></a>

</li>


Ну, почему бы и нет... только хочется как-то вместе масок урлов - имена роутов прописать - такое возможно?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@djon_pulse
Проверяйте активный роут.
<a href="{{ route('catalog-route-name') }}" class="{{ request()->routeIs('catalog-route-name') ? 'active' : '' }}">Каталог</a>


Route::get('/catalog', 'CatalogController@catalogPage')->name('catalog-route-name');


Даже если URL страницы измениться, по имени роута она будет доступна и ничего не сломается.
Ответ написан
@vism
Да, такое возможно, а в чем проблема?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы