CakePHP 3默认的json解码请求数据不起作用

时间:2016-08-13 17:43:35

标签: php json cakephp

CakePHP文档说:

  

通常,REST应用程序不仅以备用数据格式输出内容,还接受不同格式的数据。在CakePHP中,RequestHandlerComponent有助于促进这一点。默认情况下,它将解码POST / PUT请求的任何传入JSON / XML输入数据,并在$ this-> request->数据中提供该数据的阵列版本。   source

但我的$this->request->data是空数组。

AppController.php我加载$this->loadComponent('RequestHandler');

这是我的RequestHandler调试信息

enter image description here

我的请求数据:

Accept: application/json Content-Type: application/json

{"store_id": 671}

我的请求数据总是空的,为什么?

2 个答案:

答案 0 :(得分:0)

如果POST数据默认为JSON格式,则不会读取它。我不熟悉CakePHP,所以我无法帮助,但我通常处理它的方式是:

$JSON = json_decode(file_get_contents('php://input'), true);
echo $JSON['store_id'];

答案 1 :(得分:0)

调试信息来自isAuthorized。在那种情况下,JSON数据只能由 $this->request->input('json_decode');