我正在创建一个晚餐计划,并有一个'列表'对象,其中所有工作日都有自己的字段。我已经为食谱添加了一个ManyToOne关系,如下所示:
/**
* @var integer
*
* @ORM'ManyToOne(targetEntity="MatAppen'FrontendBundle'Entity'Recipe")
* @ORM'JoinColumn(name="tuesday_id", referencedColumnName="id")
*/
private $tuesday;
joinColumn语句显然不是必需的,并且已经尝试了没有,结果相同。
我的问题是Doctrine在这个字段上添加了一个unique索引和一个外键(并且所有的类型都是相同的),这导致一个配方只对一个用户可用。
知道实体应该是什么样子吗?这是doctrine的输出:schema:update——dump-sql
ALTER TABLE lists ADD CONSTRAINT FK_8269FA55B974FE2 FOREIGN KEY (tuesday_id) REFERE
CREATE INDEX IDX_8269FA55B974FE2 ON lists (tuesday_id);
任何提示都将非常感谢:)
SQL错误如下:
1062: Duplicate entry '122' for key 'UNIQ_8269FA521671777'
<标题>编辑我认为我想要的是一个多对一单向关系。原因是列/属性tuesday应该只有一个配方,但我的配方不应该知道我的任何列表…
标题>问题是您正在使用@ORM'ManyToOne
,而您应该使用@ORM'ManyToMany