可能ですか/ ZF2ハイドDoctrineObject
レーターが、ネストされたエンティティオブジェクトを持つ配列ではなく、ネストされた配列として出力を提供するようにする方法は?
となることによって
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": {}
}