是否有可能/如何使 ZF2DoctrineObject水合器将其输出作为嵌套数组而不是具有嵌套实体对象的数组提供?
以便
Array
(
[id] => 123,
[title] => FooTitle,
[bar] => Array
(
[id] => 567,
[title] => BarTitle
)
)
而不是那个
Array
(
[id] => 123,
[title] => FooTitle,
[bar] => Bar Object
(
[id] => 567,
[title] => BarTitle
)
)
附加信息/背景:
在我正在处理的 ZF2 应用程序中,我正在使用 Doctrine 并拥有实体Foo和Bar. 它们之间有OneToOne关系—— Foo has a Bar:
{
"id": "123",
"title": "FooTitle",
"bar": {
"id": "567",
"title": "BarTitle"
}
}
当我检索一个Foo对象并将其传递给DoctrineModule\Stdlib\Hydrator#extract(...)(在我的应用程序中它是在 中完成的ZF\Hal\Plugin#convertEntityToArray(...))时,我得到一个元素bar类型为的数组Bar。
在下一步中(实际上是之后的几次调用),这个结果被传递给Zend\View\Renderer\JsonRenderer#render(...),然后传递给Zend\Json\Json::encode(...),它在内部执行json_encode(...).
所以foo[bar]过滤掉的值和输出看起来像:
{
"id": "123",
"title": "FooTitle",
"bar": {}
}