【发布时间】:2015-07-14 12:01:52
【问题描述】:
我在定义关联映射时遇到问题,我不知道如何解决。
我想在两个对象之间建立多对多关系,但不仅仅是一个字段。
一张表指人物,另一张指图片,这种关系的目标是表示当一个人被其他人标记为这张图片时
我需要这样的东西:
|已标记 |标记器 |照片 |
| person_id_1 | person_id_2 | image_id_1 |
| person_id_3 | person_id_2 | image_id_1 |
| person_id_2 | person_id_4 | image_id_2 |
我尝试使用这样的多对多关系:
/**
* @ORM\ManyToMany(targetEntity="Media")
* @ORM\JoinTable(name="persons_tagged",
* joinColumns={
* @ORM\JoinColumn(name="user_tagged", referencedColumnName="id"),
* @ORM\JoinColumn(name="user_tagger", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="media_id",referencedColumnName="id")
* }
* )
**/
private $employeeTagged;
当我尝试通过控制台更新架构时,数据库中的表被创建但没有外键,因为抛出了外键定义异常,我必须手动创建外键。
有人遇到过类似的问题或有解决方法吗?谢谢
【问题讨论】:
标签: symfony doctrine-orm many-to-many