Это обычная проблема, на самом деле это происходит потому, что один из ваших маршрутов переопределяет другое объяснение проверки маршрута ниже
Допустим, у вас есть два маршрута на основе замыкания
Route::get('hello/{name}' , function($name){
return "hello " . $name;
});
Route::get('hello/world' , function(){
return "hello world is working";
});
, как вы можете видетьв приведенном выше примере мой первый маршрут принимает параметр маршрута, и он будет выводить hello плюс имя, переданное на маршруте
, например, вы посещаете / hello / mohammad, который выдаст «hello mohammad»
но только во втором маршруте вы хотите, чтобы кто-нибудь посетил hello / world, чтобы был возвращен текст «hello world работает», однако, hello world возвращается.
это происходит потому, что мы определили маршрут, который принимаетпараметр перед статическим маршрутом (/ hello / world), поэтому, если мы изменим порядок маршрута, он будет работать как задумано.
, поэтому следует учитывать одно правило при определении двух маршрутов, начинающихся с одного и того же пути (в нашем случае они оба начинаются с привет) всегда определяют статический маршрут перед динамическим маршрутом.
Вот почемутакже неплохо сгруппировать маршруты, начинающиеся с того же префикса
Надеюсь, вы его нашли и нашли мое объяснение полезным.
Предлагаю вам больше узнать о маршрутизации в документации Laravel
https://laravel.com/docs/5.6/routing