【问题标题】:Laravel : To use $_GET or $_POST for searchLaravel:使用 $_GET 或 $_POST 进行搜索
【发布时间】:2013-02-14 05:10:53
【问题描述】:

在所有 laravel 教程中,他们都使用 POST 方法来处理表单。对于搜索,我认为最好让 FORM 使用 GET,这样一旦表单被提交,查询字符串就会附加到 URL,控制器可以直接处理。

如果它是一个 POST 方法,那么表单将被提交给一个中间控制器,该控制器对其进行处理并重定向到某个结果控制器。如果不使用中间控制器,搜索字符串将不再在 URL 中可用。由于各种原因,我希望在 URL 中包含我的查询字符串。

在 laravel 表单中使用 GET 方法可以吗?

{{ Form::open('search', 'GET') }}

或者使用 POST 方法有什么特别的好处吗?

这是一个基于 laravel 构建的示例应用程序:

http://www.bootsnipp.com

搜索页面不附加任何查询字符串。我不喜欢这样的搜索。

【问题讨论】:

  • 这个问题与laravel无关。谷歌获取和发布表单之间的区别。有特定的情况,何时使用 which。它们不能相互替换(在大多数情况下)。
  • 我知道 POST 和 GET 之间的区别。在常规/核心 PHP 项目中,我会在上面的示例中使用 GET。但是在 laravel/codeigniter 中,所有教程都向我们展示了使用 POST,即使对于上面的示例(搜索)也是如此。所以我问他们这样使用它是否有任何理由/好处。
  • 框架与 php 没有什么不同。它只是提供了一些先机。 php 如此,框架也如此。
  • Laravel 与 COdeigniter 有很大不同。另外,您提到了示例:它们只是示例代码,您不能指望为您想做的所有事情找到一个 sn-p。知道规则后,就可以自己玩了

标签: php forms query-string laravel


【解决方案1】:

根据搜索经验,始终使用 GET。对于隐藏数据,请使用帖子,例如登录。

甚至谷歌我们使用 get 方法进行搜索。

【讨论】:

    【解决方案2】:

    Laravel provides the options for controllers to be RESTful。通过开启 RESTful,您的控制器可以响应 RESTful 命令,例如 POSTGETDELETEPUT

    使用Form::open() 方法,您可以选择四个选项中的任何一个。如果您决定使用GET - 那么您的get_method() 将被调用。如果您决定使用POST - 那么您的post_method 将被调用。

    按照一般 RESTful 命令,您将使用 POST 创建记录。当您检索记录时,GET 是合适的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多