Symfony2 项目中的 Doctrine2 映射问题
Posted
技术标签:
【中文标题】Symfony2 项目中的 Doctrine2 映射问题【英文标题】:Doctrine2 Mapping Problems on a Symfony2 Project 【发布时间】:2012-01-02 12:28:35 【问题描述】:我有 2 个实体 Item 和 Itemimage。 Item 与 Itemimage 之间的关系是 OneToMany 单向与 JoinColumn。我从学说文档中获得了帮助。带有 JoinColumn 的 OneToMany 单向是通过 ManyToMany 注解实现的:
/**
* @ManyToMany(targetEntity="Itemimage")
* @JoinTable(name="itemimage",
* joinColumns=@JoinColumn(name="item_id", referencedColumnName="id"),
* inverseJoinColumns=@JoinColumn(name="image_id", referencedColumnName="itemid")
* )
*/
地点:
image_id:itemid 是 Itemimage Entity 中的一个属性 item_id:是Item实体的主键属性我在 Item Entity 中创建了一个属性 $images 并给了它上面的 docblock。问题是当我尝试更新架构时。我收到一个原则错误:“表‘itemimage’已经存在”。我确信情况并非如此。我不知道该怎么办。
请帮帮我。
谢谢!感谢您的帮助。
【问题讨论】:
【参考方案1】:应该是:
/**
* @ManyToMany(targetEntity="Itemimage")
* @JoinTable(name="itemimage_map",
* joinColumns=@JoinColumn(name="item_id", referencedColumnName="id"),
* inverseJoinColumns=@JoinColumn(name="image_id", referencedColumnName="id")
* )
*/
导致创建第三个表 (itemimage_map),其中仅包含其他两个表的映射。它不是您必须加入的现有表。该表将包含 item_id 和 image_id,它们是您要映射的表的主键。
【讨论】:
以上是关于Symfony2 项目中的 Doctrine2 映射问题的主要内容,如果未能解决你的问题,请参考以下文章
由 Doctrine2 (Symfony2) 生成的约束中的奇怪随机名称
如何从 Symfony2 和 Doctrine2 中的一个点保存和检索纬度和经度
带有 Symfony2 的 Doctrine2 无法识别数据库字符集和排序规则