20

我有一个脚本,试图使用HTTP将数据发送到我的站点PUT(输出)。通常情况下,我只需使用文件获取内容('php://输入')然而,当我和拉拉维勒一起尝试时,我什么也没得到!为什么不呢?如何读取原始输入数据?

3个答案

重置为默认值
43

Laravel拦截所有输入。如果您使用的是5.6之前的PHPphp://输入流只能读取一次。这意味着您需要从框架中获取数据获取内容方法请求例如:

$content=请求::getContent();//使用请求外观/*或*/$content=$request->getContent();//如果您已经有请求实例//躺着,比如说管制员

照明\请求延伸Symfony\Component\HttpFoundation\请求、和获取内容定义如下:http://api.symfony.com/3.0/symfony/Component/HttpFoundation/Request.html#method_getContent

4
  • 4
    我认为理论上你不需要获取实例,但可以直接使用外观:请求::getContent(); 评论 2014年2月24日16:52
  • 我正在尝试将XML发送到Laravel并使用此函数,但它无法工作。
    – 玩家1
    评论 2017年5月29日20:35
  • 谢谢。$content=请求()->获取内容();同样有效。
    – 改装
    评论 2021年6月29日19:17
  • 链接已断开一半。它重定向到GitHub和锚#方法_获取内容根本不起作用。#L1478码确实有效,但我不知道它有多稳定(或者它是否是预期的)。 评论 2021年10月13日3:04
1

您还可以使用请求::json($key,$default);返回JSON负载中特定键的值。

1

最新Laravel更新(我使用的是Laravele 5.8)

使用时可能会遇到错误请求::getContent();,因为最新的Symfony Request模块(它是Laravel的Request模块的基础)不再提供获取内容作为一种静态方法。相反,我使用请求::createFromGlobals()->getContent();.

参考:访问请求数据

1

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.