查询和输入之间的区别

5

在Laravel中,

$request->query()

$request->input()有何区别?

它们都返回相同的结果。


1
我猜query()只适用于在查询字符串中带有参数的GET请求,而input()适用于不同的方法/内容类型。 - kemika
3个回答

5

官方文档直接提到:

输入方法从整个请求有效载荷(包括查询字符串)中检索值,而查询方法仅从查询字符串中检索值:

https://laravel.com/docs/5.5/requests


1
你能分享一些关于“请求负载”和“查询字符串”的例子吗?也许OP正在问同样的问题。 - freelancer
1
查询字符串是地址中“?”后面的内容:http://abc.def?xs=1&b=2 - xs=1&b=2 就是查询字符串。请求有效载荷是 HTTP 请求本身的主体。 - matiit
1
我了解“查询字符串”,但不确定“HTTP请求”。另外,请在您的答案中更新您的评论。 - freelancer
1
你可能想要在谷歌上搜索“HTTP请求”或“HTTP协议”等相关内容,这是非常有用的知识。祝你好运! - matiit
1
这个问题并不是关于解释HTTP协议本身的,所以我会避免编辑 :) - matiit

5
这两种方法的一个重要区别是:
- $request->input()可以与任何HTTP动词一起使用(例如GET,POST等) - $request->query()只能检索从查询字符串(GET方法)传递的数据 如果你仅使用查询字符串来传递数据,则两种方法将得到相同的结果。但是,如果你使用其他HTTP方法(可能带有查询字符串值),则会发现两种方法之间的差异。

4

使用原生PHP编码。

$request->input() is the equivalent of $_REQUEST  //this is either querystring or form-data submission.

$request->query() is just a straight forward $_GET   //this is querystring

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接