Почему маршрут маршрута должен иметь приоритет, иначе страница не найдена? - PullRequest
0 голосов
/ 07 сентября 2018

Я учусь использовать Redis в Laravel и обнаружил странные вещи, подобные этой: когда маршрут articles/trending выше на маршруте articles/{article}, маршрут article/trending может работать нормально: Изображение кода моего маршрутизатора

И когда articles/{article} выше на articles/trending, маршрут articles/trending не может быть найден?

Кто может сказать мне причину? и большое спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018

Поскольку оператор {article} в вашем маршруте является не более чем заполнителем.

Если поставить

Route::get('articles/{article}')

выше других маршрутов, имеющих структуру

Route::get('articles/...')

тогда оператор {article} просто поймает все, что вы поместите после /.

Это связано с тем, что Маршрутизатор Laravel (и AFAIK, каждый маршрутизатор для любого языка или инфраструктуры) ищет первое возможное совпадение между URL и определенными маршрутами.

{article} является заполнителем и, если он определен первым, всегда будет первым возможным совпадением.

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