【发布时间】:2014-03-03 07:23:22
【问题描述】:
我正在使用 Laravel 4 创建一个 Web 服务,但我遇到了可选参数的问题。 考虑以下场景::
http://webservices.example.com/city/mumbai/q/hospital/
这会为带有少量过滤器的搜索页面呈现结果,例如category and location 当然还有用于分页的参数。
现在这些过滤器参数可能是可选的,并且可能没有预定义的顺序,因为它取决于用户如何选择过滤器。所以可以说以下 URL 形式是可能的
http://webservices.example.com/city/mumbai/q/north/locality/myarea
http://webservices.example.com/city/mumbai/q/north/locality/myarea/category/eye-hospital
http://webservices.example.com/city/mumbai/q/north/category/eye-hospital/locality/my-area
我遇到的错误是app/routes.php 中的单个 URL 表单定义没有帮助。
Route::get('/city/{city}/q/{q}/locality/{locality}/category/{category}',
array('before' => 'check_city|check_query', 'uses' => 'SearchController@searchData'));
在提到 stackoverflow 之后,我看到了这个链接 Laravel 4 optional parameter 在我为不同的排列和组合创建了多个路由定义之后,它工作正常。但是,如果我的 get 参数更多,那么我们就不可能定义所有排列。所以我正在寻找更好的方法。
非常感谢任何帮助!
【问题讨论】:
标签: web-services laravel-4 laravel-routing