更改参数顺序的 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参数完美匹配到路由上了。
我的 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参数完美匹配到路由上了。