我需要建立这样的网址:
http://www.example.com/param1/param2/param3/.../paramN
在搜索页面中,用户可以搜索任何可能的选项,因此在Laravel中创建类似这样的网址将是这样的:
Route::get('{param1?}/{param2?}/{param3?}/.../{paramN?}', array( ... ) );
还有其他方法吗?或者可以将/
作为参数的一部分传递给它:
low_range-1000/high_range-5000/weight-2/height-4/red/
所以上面的行只是一个路由参数。
任何帮助?
答案 0 :(得分:7)
Route::get('{param1}/{param2?}', array( ... ) )->where('param2', '.*');
此路由需要param1作为必需参数,param2作为可选参数,可包含任何字符,包括/
。
所以我可以将low_range-1000/high_range-5000/weight-2/height-4/red/
作为param2传递。
答案 1 :(得分:0)
我在网址中执行了类似的操作,但是我使用逗号分隔搜索参数,并使用:
分隔键:值
low-range:1000,high-range:5000,weight:2,height:4,color:red
我认为看起来更干净,您不需要允许您的网址中的所有内容或允许/参数
P.S。在URL中有太多/被认为是用于搜索引擎优化目的的不良做法