我正在使用Dingo来管理我的应用程序的API。它具有调度内部请求(https://github.com/dingo/api/wiki/Internal-Requests)的功能,最终调用Laravel内部请求调度程序。
我遇到以下问题:我向路由发出内部请求,这是一个带参数的POST。在队列作业中调用此内部请求。如果在队列作业中执行此内部请求,则它可以正常工作,但是如果在我的PHPUnit测试中调度了请求但是没有发送参数。
我正在调试并在控制器中$request->input()
返回一个空数组,但$request->request->all()
返回参数。
我需要$request->input()
在所有情况下均可返回参数。
我正在使用Laravel 5.4和Dingo v1.0.0-beta8。
任何?
答案 0 :(得分:1)
我不明白为什么但是如果我通过Postman发出请求,内部请求(在原始请求中做出)不使用JSON头,但如果我在PHPUnit中测试它,则使用JSON头。实际上我相信Laravel使用原始请求的一些配置。
解决方案是在header
(非JSON标头)和content
(针对JSON标头)中发送数据 - 在这种情况下必须在{{1}中使用json_encode
}}