В Laravel присвоение активного статуса определенному пункту меню или ссылке на основе текущего имени маршрута является распространенным требованием в веб-разработке. Эта функция помогает выделить активную страницу или раздел, обеспечивая лучший пользовательский опыт. В этой статье мы рассмотрим несколько способов добиться этого в Laravel на примерах кода.
Метод 1: использование директив Blade
Механизм шаблонов Blade в Laravel предоставляет директивы, которые позволяют нам условно применять классы CSS к элементам. Мы можем использовать директиву @if, чтобы проверить имя текущего маршрута и соответствующим образом назначить «активный» класс.
<a href="{{ route('home') }}" class="{{ request()->routeIs('home') ? 'active' : '' }}">Home</a>
Метод 2: использование промежуточного программного обеспечения
Промежуточное программное обеспечение Laravel позволяет нам перехватывать запросы и выполнять действия перед их передачей по намеченному маршруту. Мы можем создать собственное промежуточное программное обеспечение для установки «активного» флага на основе имени маршрута.
public function handle($request, Closure $next)
{
$response = $next($request);
if ($request->routeIs('home')) {
$response->with('active', 'home');
}
return $response;
}
Метод 3: использование компоновщиков представлений
Композиторы представлений Laravel предоставляют возможность автоматически привязывать данные к определенным представлениям. Мы можем использовать композитор представления, чтобы установить «активную» переменную на основе текущего имени маршрута.
public function compose(View $view)
{
$view->with('active', request()->routeIs('home') ? 'home' : '');
}
Метод 4. Создание вспомогательной функции
Мы можем создать собственную вспомогательную функцию, которая проверяет имя маршрута и возвращает «активный» класс, если оно соответствует.
function setActiveRoute($routeName)
{
return request()->routeIs($routeName) ? 'active' : '';
}
Присвоение активного статуса на основе имени маршрута в Laravel может осуществляться разными методами. Независимо от того, решите ли вы использовать директивы Blade, промежуточное программное обеспечение, компоновщики представлений или вспомогательные функции, цель состоит в том, чтобы улучшить взаимодействие с пользователем, выделив активную страницу или раздел. Выберите метод, который лучше всего соответствует требованиям вашего проекта и стилю кодирования.
Не забудьте настроить примеры кода в соответствии с вашими конкретными маршрутами и классами CSS. Применяя эти методы, вы можете создавать динамичные и удобные навигационные меню в своих приложениях Laravel.