Symfony 2一对多关系不映射

时间:2016-02-03 08:26:35

标签: php symfony

我有2个实体:OwnerProperty,OwnerPropertyIntl。我声明了OwnerProperty和OwnerPropertyIntl之间的关系。 我使用这个命令php app/console doctrine:schema:validate, 结果:[Mapping] OK - The mapping files are correct. 但是当我通过

获取数据时

文件OwnerProperty

    /**
     * One-To-Many, Bidirectional
     *
     * @var ArrayCollection $ownerPropertyIntl
     *
     * @ORM\OneToMany(targetEntity="OwnerPropertyIntl", mappedBy="ownerProperty", cascade={"all"})
     */
    private $ownerPropertyIntl;

   /**
     * Add owner_property_intl
     *
     * @param OwnerPropertyIntl $ownerPropertyIntl
     * @return OwnerProperty
     */
    public function addOwnerPropertyIntl(OwnerPropertyIntl $ownerPropertyIntl)
    {
        $this->ownerPropertyIntl[] = $ownerPropertyIntl;

        return $this;
    }

    /**
     * Remove owner_property_intl
     *
     * @param OwnerPropertyIntl $ownerPropertyIntl
     */
    public function removePropertyIntl(OwnerPropertyIntl $ownerPropertyIntl)
    {
        $this->ownerPropertyIntl->removeElement($ownerPropertyIntl);
    }

    /**
     * Get owner_property_intl
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getOwnerPropertyIntl()
    {
        return $this->ownerPropertyIntl;
    }

$ownerProperty = $this->getDoctrine()->getManager()->getRepository('ACMWebBundle:OwnerProperty')->find(123);

并转储此数据: enter image description here

ownerPropertyIntl没有数据,尽管数据库有ownerPropertyIntl的4条记录,owner_property_id = 123.

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您必须按照Fracsi的说明调用getOwnerPropertyIntl(),这将触发新的SQL查询,或者您可以在您的关系上设置FETCH = EAGER,这也将始终拉出第二个实体。 提供了一个示例here

除非你真的想要延迟加载,否则你应该总是使用急切策略。