是否有可能/如何使 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": {}
}