获取父实体中一对多关系的值?

时间:2017-04-19 13:29:49

标签: doctrine-orm

所以我有一个Doctrine 2 ORM实体,Trust,有几个一对多的关系。我无法解决如何为这些填充数组的问题。

class Trust implements \JsonSerializable {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", nullable=true)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="TrustPurpose", mappedBy="trust")
     */
    private $purpose;

    public function __construct() {

    }

    public function jsonSerialize() {
        return [
            'id' => $this->id,
            'name' => $this->name,
            [...]
            'purpose' => $this->purpose,
            [...]
        ];
    }

}

在我的控制器中,我可能会使用以下内容。

return new JsonResponse($this->entityManager->find(Trust::class, 1));

获得以下输出

{
    "id" : 1,
    "name" : "Some Trust",
    "purpose" : {

    }
}

我很难找到如何编辑实体信任以自动填充目的记录的文档?

TrustPurpose

class TrustPurpose implements \JsonSerializable {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", nullable=false)
     */
    private $purpose;

    /**
     * @ORM\ManyToOne(targetEntity="Trust", inversedBy="purpose")
     * @ORM\JoinColumn(name="trust_id", referencedColumnName="id")
     */
    private $trust;

    public function __construct() {

    }

    public function jsonSerialize() {
        return [
            'id' => $this->id,
            'purpose' => $this->purpose,
            'trust' => $this->trust,
        ];
    }

}

0 个答案:

没有答案