Laravel 获取正文请求并避免查询字符串参数

Posted

技术标签:

【中文标题】Laravel 获取正文请求并避免查询字符串参数【英文标题】:Laravel Get Body request and avoid Query string params 【发布时间】:2020-11-11 11:15:26 【问题描述】:

如何在POST方法中获取没有查询字符串参数的body请求参数。

当我使用$request->all() 时,它总是返回所有参数,包括查询字符串。

我有我自己的原因,这就是我没有使用$request->only([])$request->except([]) 的原因。 (因为我想创建一个全局函数)

我只想获取正文请求参数...该怎么做?

【问题讨论】:

你试过$request->post() 吗? 它正在工作,兄弟。你能把这个答案放在下面吗?所以我可以投票。感谢您的帮助:) 【参考方案1】:

您可以这样做以获取没有查询字符串的正文请求参数:

$request->except(array_values(array_flip($request->query())));

您可以简单地使用请求对象上的post() 方法完成此操作:

$request->post();

【讨论】:

【参考方案2】:

与通过$request->query() 访问查询字符串的方式类似,也可以通过$request->post() 访问请求负载。这些方法正在访问$request->query$request->request 参数包。

query()post() 两种方法都有方法签名,允许您传递要检索的密钥和默认值:$key = null, $default = null

【讨论】:

以上是关于Laravel 获取正文请求并避免查询字符串参数的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Laravel API 处理查询字符串上的参数?

Laravel 5.2 PHPUnit JSON Api 请求正文未设置

如何访问我在 Laravel 4 中手动发送的请求的查询字符串参数?

REST API 最佳实践:查询字符串中的参数与请求正文中的参数

POST 使用 RestTemplate、查询参数和请求正文

Laravel 测试请求集正文