Создание меню с активными ссылками в Laravel может быть выполнено с помощью встроенных функций Blade и условных операторов для определения активной ссылки. Это позволяет динамически изменять стиль или классы для активной ссылки, улучшая пользовательский опыт и визуальное представление вашего сайта. В этой статье мы рассмотрим, как создать простое меню с активными ссылками в Laravel.

Шаг 1: Создание маршрутов

Допустим, у вас есть несколько маршрутов, которые вы хотите отобразить в меню:

// routes/web.php

Route::get('/', 'HomeController@index')->name('home');
Route::get('/about', 'AboutController@index')->name('about');
Route::get('/contact', 'ContactController@index')->name('contact');

Шаг 2: Создание представления меню

Создайте файл Blade для вашего меню, например resources/views/partials/menu.blade.php. В этом файле вы можете использовать функцию Route::currentRouteName() для определения текущего маршрута и добавить класс active к активной ссылке:

<!-- resources/views/partials/menu.blade.php -->

<nav>
    <ul>
        <li class="{{ Route::currentRouteName() == 'home' ? 'active' : '' }}">
            <a href="{{ route('home') }}">Home</a>
        </li>
        <li class="{{ Route::currentRouteName() == 'about' ? 'active' : '' }}">
            <a href="{{ route('about') }}">About</a>
        </li>
        <li class="{{ Route::currentRouteName() == 'contact' ? 'active' : '' }}">
            <a href="{{ route('contact') }}">Contact</a>
        </li>
    </ul>
</nav>

Шаг 3: Использование меню в представлениях

Теперь вы можете включить ваше меню в любое представление Blade с помощью директивы @include:

<!-- resources/views/layouts/app.blade.php -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Laravel Site</title>
</head>
<body>
    @include('partials.menu')

    <main>
        @yield('content')
    </main>
</body>
</html>

Шаг 4: Добавление стилей для активной ссылки

Вы можете добавить CSS-стили для класса active в вашем файле стилей, чтобы выделить активную ссылку:

/* public/css/app.css */

.active {
    color: red;
    font-weight: bold;
}

Не забудьте подключить ваш CSS-файл в вашем макете Blade:

<!-- resources/views/layouts/app.blade.php -->

<head>
    ...
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>

Заключение

Создание меню с активными ссылками в Laravel позволяет динамически изменять стиль или классы для активной ссылки, улучшая пользовательский опыт и визуальное представление вашего сайта. Использование функций Blade и условных операторов для определения активной ссылки делает этот процесс простым и эффективным.