@sergei179

Как работать со статичными маршрутами и переменными в Laravel?

я бы добавил еще тег "криворукость", но может не пропустит)

Всем привет.

Разбираюсь в Laravel 8 и возникла небольшая проблема.

В Web.php есть несколько маршрутов, которые открывают разные представления по разным адресам. Есть запросы которые имеют статичный адрес, к примеру:
Route::get('/basket/add', 'BasketController@basket')->name('basket');

А есть запросы с переменными адресами, к примеру
Route::get('/{category}/{product?}', 'MainController@product')->name('product');

Так вот - у меня почему-то динамичные адреса перекрывают статичные. То есть при вводе в адресную строку: localhost:8000/basket/add, у меня открывает представление, которое должно открываться при запросе localhost:8000/{category}/{product?}

Я связывают это с тем, что динамичные адреса берут все то, что вводит пользователь. Но по идее оно должно брать только те адреса, которые есть в БД, а там их 4 (mobile, pc, portable, othen), и не должно перекрывать статичные адреса, которые указаны в web.php.

Также есть проблема с другими адресами. Адрес:
Route::get('/{category}', 'MainController@category')->name('category');

Перекрывает адрес
Route::get('/place', 'BasketController@basketPlace')->name('basket-place');

Но при этом адрес
Route::get('/{category}', 'MainController@category')->name('category');

Почему-то не перекрывает адрес:
Route::get('/categories', 'MainController@categories')->name('categories');

Как исправить можно исправить эту ошибку и с чем оно может быть связано?

Смотрю видео курс по Laravel, а там такой проблемы не возникло. Может из-за того что Laravel там 6-й версии, а у меня 8-й, может еще почему-то. Но я сверял свой код с тем что в видеокурсе - все одинаково.
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
«Статичные» должны быть объявлены после «динамических».

Но по идее оно должно брать только те адреса, которые есть в БД
Роутер ничего про содержимое вашей БД не знает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы