Laravel возвращает исключение «маршрут не найден», пока маршрут определен

#routes #laravel-8

Вопрос:

Я новичок в Laravel (я использую Laravel 8 с sail на ПК с Windows), и я уже довольно давно пытаюсь это понять и не могу найти объяснения.

В моем web.php файл, я попытался определить следующий маршрут:

 Route::get('/reservations', [ReservationController::class, 'create'])->name('reservation.create');
 

Однако, когда я ссылаюсь на него на лезвии с:

 <a href="{{ route('reservation.create', $book->id) }}" class="btn btn-outline-primary">Reserve</a>
 

Я получаю исключение «Маршрут не найден/определен».

Но когда я изменю маршрут на:

 Route::get('/reservations', 'ReservationController@create')->name('reservation.create');
 

Это прекрасно работает.

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

 Route::get('/books/search', [BookController::class, 'search'])->name('books.search');
 

Может кто-нибудь, пожалуйста, сказать мне, чего мне здесь не хватает?

(дополнительно) У меня есть

 use AppHttpControllersReservationController;
 

в web.php файл,

 namespace AppHttpControllers;
 

в контроллере и

 protected $namespace = 'App\Http\Controllers';
 

в RouteServiceProvider.php файл, и я выполнил все команды artisan/composer для очистки маршрутов и кэшей и т. Д., Которые я нашел в других вопросах переполнения стека.

(обратите внимание, что, хотя я решил проблему с помощью 2-го метода, несоответствие в web.php файл меня раздражает)

с уважением