我试图在两个学说实体中的字段之间添加多对一关系。我有一个Facebook提要表,其中列出了Facebook提要及其相应的Facebook ID,我有一个FbPageLikes实体,这是一个表格,我随时间记录这些Facebook提要的喜欢数量的行。
我相信我已正确注释,但在尝试迁移时仍然会看到此错误:General error: 1215 Cannot add foreign key constraint
我的注释有问题吗?如何调试此学说迁移?
FbPageLikes实体:
/**
* @var $facebookId
*
* @ORM\ManyToOne(targetEntity="Feed", inversedBy="fbPageLikes")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="facebook_id", referencedColumnName="facebookId", onDelete="CASCADE")
* })
*/
private $facebookId;
Feed实体:
/**
* @var integer
*
* @ORM\Column(name="facebookId", type="bigint", nullable=true)
*/
private $facebookId;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany(targetEntity="FbPageLikes", mappedBy="facebookId", fetch="EXTRA_LAZY")
*/
private $fbPageLikes;
答案 0 :(得分:0)
此设置失败的原因是FbPageLikes
实体上的注释。 referencedColumnName
字段必须引用相应实体Feed
中的主键。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-joincolumn
就我而言,我必须设置referencedColumnName
来引用id
实体的Feed
列,而不是facebookId
列。