Symfony2条令多个,有3个相关字段
我在定义关联映射时遇到问题,我不知道该怎么解决 我想在两个对象之间建立一个多对多的关系,但不仅仅是一个字段 一个表引用人,另一个表引用图像,当一个人被其他人为此图像标记时,表示此关系的目标 我需要这样的东西:Symfony2条令多个,有3个相关字段,symfony,doctrine-orm,many-to-many,Symfony,Doctrine Orm,Many To Many,我在定义关联映射时遇到问题,我不知道该怎么解决 我想在两个对象之间建立一个多对多的关系,但不仅仅是一个字段 一个表引用人,另一个表引用图像,当一个人被其他人为此图像标记时,表示此关系的目标 我需要这样的东西: /** * @ORM\ManyToMany(targetEntity="Media") * @ORM\JoinTable(name="persons_tagged", * joinColumns={ * @ORM\JoinColumn(name="user_tagged",
/**
* @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;
|标记|标记者|照片| |人物身份1 |人物身份2 |形象身份1| |人物标识3 |人物标识2 |形象标识1| |人物识别号2 |人物识别号4 |图像识别号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;
当我试图通过控制台更新模式时,数据库中的表被创建,但没有外键,因为外键定义的异常被抛出,我必须手动创建外键
有人有过类似的问题或解决方法?谢谢创建一个新实体,该实体具有指向图像的链接、指向标记者的链接(用户)、指向标记者的链接(用户)
您可能还需要添加创建的日期时间、更新的日期时间、此人所在的图像部分、描述/文本等。实际上,这听起来是我最简单的解决方案。我完全同意这个答案。我过去也用过同样的方法。您只需将多对多分解为多对一+一对多。