Php Zend Framework参数插件未检索post参数

Php Zend Framework参数插件未检索post参数,php,angularjs,zend-framework2,Php,Angularjs,Zend Framework2,我正在扩展AbstractRestfulController并试图将数据发布到我的create函数中,但是当我尝试使用params插件接收数据时,我得到了一个空数组: public function create() { $data = $this->params()->fromPost(); return new JsonModel(array('data' => $data)); } 我使用save功能成功地从我的angular$reso

我正在扩展
AbstractRestfulController
并试图将数据发布到我的
create
函数中,但是当我尝试使用params插件接收数据时,我得到了一个空数组:

public function create() {
        $data = $this->params()->fromPost();
        return new JsonModel(array('data' => $data));
 }
我使用save功能成功地从我的angular
$resource
发布,并将其取回:

{"data":[]}

你知道为什么params插件没有得到参数吗?还有什么我可以试试的吗?

当使用
$this->params()->fromPost()时,您应该在操作中使用它

例如:

public function createAction()
{
    $data = $this->params()->fromPost();

    return new JsonModel(array('data' => $data));
}

目前,您只使用未被解析的标准函数名。因此,在这种情况下,您需要将发布的数据传递给该函数
$this->create($data)

您希望向服务器发送什么

Angular将所有内容作为原始JSON(mimetype application/JSON)发送,而不是application/x-www-form-urlencoded。因此,它不会出现在
$\u POST
中,相反,您可以通过以下方式获得它:

$json = json_decode(file_get_contents('php://input'));
也许您的框架有一个更简单的方法。

函数必须在参数列表中指定
$data
变量:

public function create($data) {
        $data = $this->params()->fromPost();
        return new JsonModel(array('data' => $data));
 }

框架似乎随后传入了
$\u POST
superglobal。

AbstractRestfulController的文档说明HTTP谓词被路由到特定函数。它还声明create函数期望传入$data变量,但不清楚如何传入。从文档中可以看到:“POST maps to create()。该方法需要一个$data参数,通常是$\u POST superglobal数组。”这是否意味着它将通过$\u POST superglobal?好的,更多测试,似乎是这样。如果指定$data作为它在$\u POST superglobal中传递的函数参数,Zend框架将为
应用程序/json
查找
内容类型
标题,并自动解析json,如果json不正确,则抛出错误。Angular提供此标题。