传递许多可选参数以在Laravel 4中路由

时间:2014-04-05 07:03:35

标签: php laravel-4 laravel-routing

我需要建立这样的网址:

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/

所以上面的行只是一个路由参数。

任何帮助?

2 个答案:

答案 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中有太多/被认为是用于搜索引擎优化目的的不良做法