0

可能ですか/ 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を使用しており、エンティティFooBar. それらの間にはOneToOne関係があります -- Foo has a Bar:

{
    "id": "123",
    "title": "FooTitle",
    "bar": {
        "id": "567",
        "title": "BarTitle"
    }
}

Fooオブジェクトを取得してに渡すとDoctrineModule\Stdlib\Hydrator#extract(...)(私のアプリケーションでは 内で行われます)、タイプ のZF\Hal\Plugin#convertEntityToArray(...)要素を持つ配列を取得します。barBar

次のステップ (実際には後でいくつかの呼び出し) で、この結果が に渡され、Zend\View\Renderer\JsonRenderer#render(...)次に に渡され、Zend\Json\Json::encode(...)内部で が実行されjson_encode(...)ます。

したがって、 の値はfoo[bar]フィルターで除外され、出力は次のようになります。

{
    "id": "123",
    "title": "FooTitle",
    "bar": {}
}
4

1 に答える 1