Laravel中的可链接搜索

时间:2015-02-10 21:18:52

标签: php laravel routing url-routing

我正在构建一个基本单页的Web应用程序。在完成状态下,它会在可能的情况下使用AJAX,但如果javascript不可用/关闭,我会在事件中使用静态http回退。< / p>

无论如何,url / uri中需要有多个东西才能链接:

  • 以(名字,姓氏)命令
  • 页码(如果已分页)
  • 搜索字词(如果已选中)
  • 州/县(如果选择)
  • 国家/地区(如果已选择)
  • 订单类型(如果已选择)

这看起来像这样只使用GET变量:

my.app?page=2&order=lastname&country=usa&state=colorado&searchterm=mysearchterms&ordertype=downloadable

但是,如果我对Laravel中的约定是使用命名路由,那么上面的URI看起来像:

my.app/search/usa/colorado/mysearchterms/downloadable/page/2/lastname/

此外,由于我在没有javascript的情况下开发此部分,因此我需要一个表单来提交search + country + state + ordertype以及pageorder,这意味着当用户点击分页链接或订单链接时,将覆盖该网址。

是否有一种简单的方法可以将所有这些组合成不可互相覆盖的可读网址?

1 个答案:

答案 0 :(得分:0)

为什么在你加入时仍然使用GET查询sting搜索结果?

将搜索表单中的输入传递给 Controller @ method_A 。验证输入并重定向到 Controller @ method_B - 使用其他GET参数数组:

return Redirect::route('search', array(
        'order' => $order,
        'country' => $contry,
        'state' => $lastName
));

method_B 检索搜索结果并返回结果页面,该页面由于URL中的查询字符串而可链接。

您可以使用标准Input::get('name')获取查询字符串参数。分页&page参数应该与开箱即用的GET字符串一起使用。