内部请求在测试时不发送参数

时间:2017-05-12 00:18:51

标签: php laravel phpunit laravel-5.4 dingo-api

我正在使用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。

任何?

1 个答案:

答案 0 :(得分:1)

我不明白为什么但是如果我通过Postman发出请求,内部请求(在原始请求中做出)不使用JSON头,但如果我在PHPUnit中测试它,则使用JSON头。实际上我相信Laravel使用原始请求的一些配置。

解决方案是在header(非JSON标头)和content(针对JSON标头)中发送数据 - 在这种情况下必须在{{1}中使用json_encode }}