Route :: имеет примечание, определяющее ресурс маршрута - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь создать ссылки в верхнем навигационном меню, используя код, чтобы проверить, есть ли в названии маршрута текстовый шаблон.

Все работает, кроме одного маршрута, который также определен как ресурс.

Ниже приведен мой код в файле web.php

 Route::get('/bookings', 'BookingController@index')->name('bookings');
 Route::resource('/bookings', 'BookingController');

в приложении. Файл blade.php У меня есть код:

@if (Route::has('bookings'))
  <li class="nav-item">
    <a class="nav-link" href="{{ route('bookings') }}">{{ __('Bookings') }}</a>
  </li>
@endif            

Я проверил маршруты в php artisan и он указан как существующий.

| api,auth:api |
|        | POST      | bookings                | bookings.store   | App\Http\Controllers\BookingController@store                           | web          |
|        | GET|HEAD  | bookings                | bookings.index   | App\Http\Controllers\BookingController@index                           | web          |
|        | GET|HEAD  | bookings/create         | bookings.create  | App\Http\Controllers\BookingController@create                          | web          |
|        | PUT|PATCH | bookings/{booking}      | bookings.update  | App\Http\Controllers\BookingController@update                          | web          |
|        | GET|HEAD  | bookings/{booking}      | bookings.show    | App\Http\Controllers\BookingController@show                            | web          |
|        | DELETE    | bookings/{booking}      | bookings.destroy | App\Http\Controllers\BookingController@destroy                         | web          |
|        | GET|HEAD  | bookings/{booking}/edit | bookings.edit    | App\Http\Controllers\BookingController@edit

1 Ответ

1 голос
/ 26 октября 2019

Route::has('bookings') проверяет список маршрутов для маршрута с именем bookings. Хотя у вас есть URL-адрес bookings, его имя в списке маршрутов равно bookings.index - у вас нет маршрута с именем bookings.

(согласноВывод php artisan route:list, ваш маршрут из вызова Route::resource уничтожает предыдущий вызов Route::get. Удалите это избыточное / игнорируемое определение Route::get.)

Route::has('bookings.index') должно помочь (и изменитьroute('bookings') до route('bookings.index').

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