我有一个使用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)
,但这也没有用。 (我假设因为参数是一个数组而没有通过引用传递。)我是以错误的方式进行此操作,还是这不可能?