ZendFramework 3 PUT方法参数访问

时间:2017-02-09 13:01:50

标签: zend-framework3

我基于Zend Framework 3制作REST API服务。我一直在处理PUT请求。让它像这样:

PUT /document/14
Request parameters are: {
    token: '.. some string here ..',
    name: '....',

}

问题是,我甚至无法获得“令牌”,因为$ this-> getRequest() - > getQuery()和$ this-> getPost()都不包含任何参数所有

我见过很少的建议,比如注册Zend_Controller_Plugin_PutHandler,但我没有在Zend Framework 3中找到这样的类。

1 个答案:

答案 0 :(得分:1)

你需要获取JSON数据,并且没有params帮助,所以快速黑客将是:

// In your Controller action
$content = $this->getRequest()->getContent();
$data    = json_decode($content, true);

var_dump($data); // here you will have your json as array

这有效,但更好的方法是使用AbstractRestfulController。 扩展它,您将自动在方法更新($ id,$ data)中注入$ id和$ data。您还将拥有RESTful API的所有其他方法。

您应该检查该类的实现以获取更多信息,尤其是方法jsonDecode