首页 > 解决方案 > 更改参数顺序的 Laravel 路由中出现 404 错误

问题描述

我的 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

标签: phplaravelparametersroutinghttp-status-code-404

解决方案


由于您使用了两条带有通用参数的路由,因此 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 参数与路由匹配。


推荐阅读