Zend Framework:在到达Resource之前转换帖子数据

时间:2016-05-04 00:18:28

标签: php post zend-framework2 apigility

我有一个使用Apigility的Zend Framework 2项目,我希望能够通过POST发送一个对象数组,以便一次创建多个实体。但是,ZF/Rest/Resource在进行POST时会自动将数组转换为对象。为了使逻辑更清晰,我想将数据数组转换为我喜欢的对象(在将数组放入资源之前将其放入诸如存储之类的密钥中)。

// ZF\Rest\RestController

public function create($data) //$data is an array
{
    $events = $this->getEventManager();
    $events->trigger('create.pre', $this, array('data' => $data));

    try {
        // I want to convert $data to an object by this point
        $entity = $this->getResource()->create($data);
    } catch (\Exception $e) {
        return new ApiProblem($this->getHttpStatusCodeFromException($e), $e);
    }

我认为必须有一种方法可以挂钩create.pre事件来执行此操作。我附加了一个方法,它从事件中获取请求,获取,转换和设置请求的内容,但我的调试器说资源仍在接收原始数组。我也试过$event->setParam('data', $object),但这也没有用。 (我假设因为参数是一个数组而没有通过引用传递。)我是以错误的方式进行此操作,还是这不可能?

0 个答案:

没有答案