更改参数顺序的 Laravel 路由中出现 404 错误

404 error in Laravel routing with changing parameter order

我的 Laravel 路由中有一个奇怪的问题。当我使用这个 url 时,一切都很完美:

Route::get('properties/{product}', 'ProController@getpro');

但是当我想像下面这样更改顺序时,我得到一个 404 未找到页面:

Route::get('{product}/properties', 'ProController@getpro');

问题是什么?

http://127.0.0.1:8000/product/pizza-lake-dariusbury/properties 404 (Not Found)

我正在使用 Laravel 安装程序版本 2.0.1

由于您使用的是两条采用通用参数的路由,Laravel 可能无法将 URL 与路由匹配。例如:/product/1/properties,可以完美匹配这个{prod?}/{prod_size?}.

为了解决这个问题,我建议您在路由中添加一些前缀,以识别它们:

Route::get('routename1/{product}/properties', 'ProController@getpro');
Route::get('routename2/{prod?}/{prod_size?}', 'ProController@name');

那么 routename1/1/properties 将永远不适合 routename2/{prod?}/{prod_size?}

那么Laravel就可以将URL参数完美匹配到路由上了。