Руководство по присвоению активного статуса в Laravel на основе имени маршрута

В 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.