3

Doctrine オブジェクト グラフをシリアライズおよびデシリアライズしようとしています。

構造はかなり複雑ですが、この例は私の問題を要約しています:

Companyに OneToMany 関係を持つエンティティがありますEmployee。エンティティには、 との多対一の関係があり
ます。EmployeeCompany

これは、次のようにシリアル化されます。

{
    "company": {
        "name": "MegaCorp",
        "employees": [{
            "name": "John Doe",
            "company": null
        }]
    }
}

つまり、の親nullへの参照です。シリアル化については、これで問題ありません。しかし、この json を逆シリアル化すると、オブジェクトに a が入ります。私が望む (そして期待する) ことは、parent への正しい参照を取得することです。EmployeeCompanynull CompanyEmployeeCompany

これは JMS シリアライザーを使用して可能ですか?
それが不可能な場合、どのような回避策がありますか? これは大きなグラフであることを覚えておいてください。手動で行いたくありません。

4

3 に答える 3

0

What's about set the reference manually when you have deserialize the object? Something like this:

class Company { 

    ....

    @PostDeserialize
    public function setReferences()
    {
        foreach( $this->employees as $employee ){
            $employee->setCompany( $this );
        }
    }
}
于 2016-07-16T14:30:41.133 に答える