我正在研究doctrine2 / symphony 2.8.2中的OneToOne加入,我一直在努力:
The association X\BaseDesignBundle\Entity\SessionDesign#user refers to the inverse side field X\UserBundle\Entity\User#SessionDesign which does not exist.
用户:
/**
* @ORM\OneToOne(targetEntity="X\BaseDesignBundle\Entity\SessionDesign")
* @ORM\JoinColumn(name="fcid", referencedColumnName="id")
*/
private $sessionDesign;
会话设计:
/**
* @ORM\OneToOne(targetEntity="x\UserBundle\Entity\User")
* @ORM\JoinColumn(name="id", referencedColumnName="fcid")
*/
private $user;
我有0个想法在这一点上是错的,我已经尝试了我能想到的一切。谢谢你提供的所有帮助。
答案 0 :(得分:0)
JoinColumn只应出现在FK所在的实体上。
例如(假设FK在会话设计上。)
会话设计
/**
* @ORM\OneToOne(targetEntity="X\BaseDesignBundle\Entity\User")
* @ORM\JoinColumn(name="fcid", referencedColumnName="id")
*/
private $user;
用户:
/**
* @ORM\OneToOne(targetEntity="x\UserBundle\Entity\SessionDesign", inversedBy="user")
*/
private $sessionDesign;
为了您自己的理智,我建议您更好地命名您的FK。 fcid并不是一目了然,为什么不把它称为user_id或session_design_id(取决于你把FK放在哪里)。
E.g。 * @ORM\JoinColumn(name="session_design_id", referencedColumnName="id")
只是简化了解析
有关详细信息,请参阅documentation。
答案 1 :(得分:0)
我会补充上一个答案: @ORM \ OneToOne(targetEntity =" X \ BaseDesignBundle \ Entity \ User", mappedBy =" sessionDesign" )