我在我的laravel网站上有一个新闻故事列表。在/news/
页面上显示了一个快速故事列表。Laravel:通过可选的用户输入进行口头过滤
现在我想让用户过滤新闻。例如,只显示“运动”故事。
在我控制我这样做:
$input = Input::all();
$events = DB::table('news')
->where('category', '=', $input['type'])
->order_by('created_at', 'desc')
->paginate(10);
现在,这可以让我参观/news?type=sports
并正确只显示了体育范畴内的新闻项目。这只适用于如果给出类型的情况,并且如果没有给出类型则显然会失败。
这是最好的解决方案是什么?我知道我可以检查$input['type']
是否存在,如果有,请编写一个全新的第二个"$news = DB::table('news')..."
代码,但我想我可能实际上想要有多个用户输入,这会使该选项无效。例如,如果我想按类型和位置进行排序,该怎么办?像/news?type=sports&area=chicago
- 我该怎么办?
我知道我必须在这里丢失一些明显的东西。任何人都可以将我指向正确的方向吗?
你应该尽管使用URI作为路由参数,而不是通过GET。 – rmobis