Zend Framework params插件没有检索post params

时间:2014-01-10 20:29:07

标签: php angularjs zend-framework2

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

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

我使用保存功能从我的角度$resource成功发布并获取此信息:

{"data":[]}

为什么params插件没有获取参数的任何想法?还有什么我可以尝试的吗?

3 个答案:

答案 0 :(得分:1)

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

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

似乎框架传递了$_POST超全局。

答案 1 :(得分:0)

使用$this->params()->fromPost()时,您应该在Action中使用它。

示例:

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

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

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

答案 2 :(得分:0)

您希望将哪些内容发送到服务器?

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

$json = json_decode(file_get_contents('php://input'));

也许您的框架有一种更简单的方法。