我的Laravel路由中存在一个奇怪的问题。当我使用此网址时,一切都会变得很完美:
Route::get('properties/{product}', 'ProController@getpro');
但是当我想像下面那样更改顺序时,我得到了一个404 not found页面:
Route::get('{product}/properties', 'ProController@getpro');
出什么问题了?
http://127.0.0.1:8000/product/pizza-lake-dariusbury/properties 404(未找到)
我正在使用Laravel安装程序2.0.1版
答案 0 :(得分:2)
由于您正在使用两个带有通用参数的路由,因此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参数与路线完美匹配。