В Laravel установка активного состояния навигационных ссылок на основе текущего маршрута является распространенным требованием. Это помогает пользователям быстро определить, на какой странице они сейчас находятся, и улучшает общий пользовательский опыт. В этой статье мы рассмотрим несколько методов достижения этой функциональности, сопровождаемые примерами кода.
Метод 1: использование объекта Request
Один простой подход — использовать объект Request
для определения текущего маршрута и сравнения его с желаемой навигационной ссылкой. Вот пример:
<a href="{{ route('home') }}" class="{{ request()->routeIs('home') ? 'active' : '' }}">Home</a>
Метод 2. Использование функции url()->current()
.
Другой метод предполагает использование функции url()->current()
для получения текущего URL-адреса и сравнения его с URL-адресом навигационной ссылки. Вот пример:
<a href="{{ route('about') }}" class="{{ url()->current() === route('about') ? 'active' : '' }}">About</a>
Метод 3: использование функции Route::currentRouteName()
Функция Route::currentRouteName()
возвращает имя текущего маршрута, что позволяет сравнить его с нужной навигационной ссылкой. Вот пример:
<a href="{{ route('contact') }}" class="{{ Route::currentRouteName() === 'contact' ? 'active' : '' }}">Contact</a>
Метод 4: использование промежуточного программного обеспечения для установки активных навигационных ссылок.
Вы также можете создать собственное промежуточное программное обеспечение, которое устанавливает активное состояние навигационных ссылок на основе текущего маршрута. Вот пример:
public function handle($request, Closure $next)
{
$response = $next($request);
if ($request->routeIs('products.*')) {
$response->with('activeLink', 'products');
}
return $response;
}
Метод 5: использование директив Blade
Директивы Blade предлагают простой и лаконичный способ обработки активных навигационных ссылок. Вот пример:
@active('home')
<a href="{{ route('home') }}" class="active">Home</a>
@else
<a href="{{ route('home') }}">Home</a>
@endactive
Установить активное состояние навигационных ссылок в Laravel можно разными способами. Независимо от того, решите ли вы использовать объект Request
, сравнить URL-адреса, использовать функцию Route::currentRouteName()
, внедрить промежуточное программное обеспечение или использовать директивы Blade, важно учитывать конкретные требования вашего проекта. Внедряя активные навигационные ссылки, вы можете улучшить взаимодействие с пользователем и сделать ваше приложение Laravel более интуитивно понятным.