实体上的两个OnetoMany关系会导致错误吗?

时间:2013-07-31 03:00:45

标签: symfony doctrine relationships

我有一个名为Reservations的实体,它与其他表有两个关系。

reservation.orm.yml

oneToMany:
        emails:
            targetEntity: Acme\EmailBundle\Entity\Email
            mappedBy: reservation
    oneToMany:
        texts:
            targetEntity: Acme\TextBundle\Entity\Text
            mappedBy: reservation

email.orm.yml

manyToOne:
            reservation:
                targetEntity: Acme\ReservationBundle\Entity\Reservation
                inversedBy: emails
                joinColumn:
                    name: reservation_id
                    referencedColumnName: id

text.orm.yml

manyToOne:
            reservation:
                targetEntity: Acme\ReservationBundle\Entity\Reservation
                inversedBy: texts
                joinColumn:
                    name: reservation_id
                    referencedColumnName: id

使用此代码,我可以通过

访问文本
$reservation->getTexts(); 

但是,当我这样做时

$reservation->getEmails(); 

Symfony返回NULL,即使在我的数据库中,该电子邮件还有我正在尝试收到的电子邮件的预订ID。因此,从它看起来,它创建电子邮件并设置预订,但由于某种原因,我无法在PHP或Twig中获取这些预订的电子邮件。

我认为这是因为我没有正确地定义我的关系,尽管它们基本上是千差万别的。他们的订单是搞砸了。在我的PHP研究中,我创建了一个数组集来存储电子邮件,就像文本一样。不知道发生了什么......

1 个答案:

答案 0 :(得分:1)

尝试使用预订yml文件..

oneToMany:
    oneToMany:
        texts:
            targetEntity: Acme\TextBundle\Entity\Text
            mappedBy: reservation
        emails:
            targetEntity: Acme\EmailBundle\Entity\Email
            mappedBy: reservation