Сопоставление ресурса Laravel в клинке - PullRequest
0 голосов
/ 08 марта 2019

Я собрал типичную систему crud с использованием маршрутизации ресурсов laravel (5.8).

Route::resource('users', 'UserController');

Я пытаюсь сопоставить любые методы этого ресурса, чтобы сделать ссылку активной в меню:

  <li class="nav-item 
      @if(Request::route()->getName() == 'users.index' 
        || Request::route()->getName() == 'users.create'
        || Request::route()->getName() == 'users.show'
        || Request::route()->getName() == 'users.*.edit') 
       active
      @endif">
       <a href="#">Users</a>
  </li>

Есть ли для этого четкое решение?

1 Ответ

1 голос
/ 08 марта 2019

Для этого вы можете использовать следующее.

<li class="nav-item {{ str_is('users.*', Route::currentRouteName()) ? 'active' : '' }}>
  <a href="#">Users</a>
</li>

При этом используется str_is () помощник laravel, чтобы увидеть, содержит ли строка users.. Это проверка по имени текущего маршрута.

Затем выводится active, если true, и ничего, если false.

Примечание: В Laravel 5.8 помощники по строкам и массивам удалены по умолчанию. Ваш код должен использовать фасад Str.

<li class="nav-item {{ \Str::is('users.*', Route::currentRouteName()) ? 'active' : '' }}>
  <a href="#">Users</a>
</li>
...