【发布时间】:2018-12-12 23:11:26
【问题描述】:
我正在寻找解决此问题的最佳方法。
我有一个发布简单搜索的表单,但是有多个可选值。然后控制器将帖子重定向到更易于阅读的 URL。
例如
startdate=2018-01-01
enddate=2018-01-31
department=2,4
这将创建一个 URL
/2018-01-01/2018-01-31/2,4/
但如果他们也按员工搜索,则会返回以下内容
employee=9,5,1
/2018-01-01/2018-01-31/2,4/9,5,1/
他们也不能搜索部门而只搜索员工
/2018-01-01/2018-01-31/???/9,5,1/
因此,考虑到下面显示的完整 URL 路由计划,您将如何使用嵌套的可选属性?另外,之后您将如何在路由中获取这些值?
Route::get('/{locale}/WIPReport/show/{startdate}/{enddate}/{regions?}/{offices?}/{departments?}/{clients?}/{employees?}', 'WIPReportController@reportdata')
->where(['regions' => '[0-9,]+', 'offices' => '[0-9,]+', 'departments' => '[0-9,]+', 'clients' => '[0-9,]+', 'employees' => '[0-9,]+'])
【问题讨论】:
-
这些作为查询字符串不是更好吗?
-
可以使用多个可选的路由参数,但除非你将
/null或/0等放入你的URL并进行相应的处理,否则你会遇到问题。考虑使用查询字符串,通过POST等处理 -
@TimLewis 我也这么想。我曾考虑将帖子数据保留为帖子,但还有另一个功能可以让他们为报告添加书签以进行重新创建,这样就行不通了。将其发布为答案,我会接受
标签: php laravel routes laravel-5.6