Активные ссылки



Активные ссылки - это вспомогательный пакет, который позволяет легко распознать текущий адрес (Url) или маршрут (Route), очень полезный для добавления класса active (например, те, которые используются в Bootstrap), а также различные действия, только если определенный маршрут активен. Он также включает помощника, чтобы получить текущий контроллер и имена действий.

Функции помощники


Активные ссылки с несколькими вспомогательными функциями, которые упрощают использование без фасада.

active()
is_active()

Использование

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

// Возвращает «active», если текущий маршрут соответствует любому пути или имени маршрута.
active('login', 'users/*', 'posts.*', 'pages.contact'); 

// Возвращает «активный класс», если текущий маршрут - «логин» или «выход из системы».
active(['login', 'logout'], 'active-class'); 

В первом примере функция вернет строку active, если текущий путьlogin, начинается с users / или если имя текущего маршрута posts.create.

Обратите внимание, что предоставляется несколько типов аргументов: вы можете использовать строку пути, вы можете использовать строку пути с подстановочным знаком (используя *), и вы также можете использовать именованные маршруты.

Вы можете использовать эту функцию со своими ссылками, чтобы дать им активное состояние.

<a href="{{ route('posts.index') }}" class="{{ active('posts.index') }}">
    All posts
</a>

Вы также можете указать определенные пути или маршруты, которые должны быть проверены.

active(['pages/*', 'not:pages/contact'])

active(['pages.*', 'not:pages.contact'])

Проверка

Проверка осуществляется функцией is_active() - это работает так же, как active (), вы можете передавать ему пути и маршруты, но вместо этого он возвращает логическое значение, если текущая страница соответствует:

@if (is_active('posts/*'))
    You're looking at a blog post!
@endif

Дополнительные помощники

Для получения текущего контроллера и действия предусмотрены две дополнительные функции, если ваша маршрутизация обрабатывается контроллером для запроса. Эти функции вернут имя контроллера без метода запроса. Ниже приведен пример запроса, который перенаправляется на `FooController@getBar':

$controller = controller_name(); // foo

$action = action_name(); // bar