Примените «активный» класс к активному URL в Laravel динамически, что является чистым и многоразовым способом? - PullRequest
0 голосов
/ 03 октября 2018

Для следующих URL:

Я хочуПримените класс «активный» для навигации пользователей динамически в Laravel следующим образом:

<ul>
    <li class="active"><a href="{{ route('users') }}">Users</a></li>
    <li class=""><a href="{{ route('pages') }}">Pages</a></li>
</ul>

Каков чистый и многократно используемый способ сделать это без использования сторонних плагинов?

1 Ответ

0 голосов
/ 03 октября 2018

Метод 1: однострочный ярлык решения

Использовать {{request () -> is (' users ')?'active': ''}} как описано в этом ответе следующим образом:

<ul>
    <li class="{{ request()->is('*users*') ? 'active' : '' }}"><a href="{{ route('users') }}">Users</a></li>
    <li class="{{ request()->is('*pages*') ? 'active' : '' }}"><a href="{{ route('pages') }}">Pages</a></li>
</ul>

Метод 2: Чистый и многоразовый раствор

Вы можете создать и использовать пользовательский помощник с именем «active», выполнив следующие действия:

  1. Добавьте {{active ('частичный-url')}} в свой атрибут класса
<ul>
    <li class="{{ active('users') }}"><a href="{{ route('users') }}">Users</a></li>
    <li class="{{ active('pages') }}"><a href="{{ route('pages') }}">Pages</a></li>
</ul>
Создайте файл с именем "helpers.php" в каталоге приложения и добавьте эту вспомогательную функцию
<?php
function active($partialUrl){
      return request()->is("*".$partialUrl."*") ? 'active' : '';
}
Добавьте файл helpers.php в автозагрузку, добавив следующую строку в ваш файл composer.json
    ...
     "autoload": {
          ...
          "files": [
              ...
              "app/helpers.php",
          ],
          ...
    },
   ...

"..." в приведенном выше фрагменте кода означаетчто могут быть или не быть некоторые другие строки кода

Дамп автозагрузчика, выполнив следующую команду
composer dump-autoload
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...