学说与教育Symfony3 OneToOne关系,反面不存在

时间:2018-02-12 19:59:42

标签: php database symfony doctrine-orm doctrine

我正在寻找关于Doctrine 2中关系如何工作的明确解释。我现在已经尝试了几天在Symfony3中建立OneToOne关系,并且基本上已经阅读了所有线程和所有文档,而我只是不明白。过去几个小时我一直在努力进入OneToOne关系,没有运气。 这是我正在处理的问题:

我的用户实体有一个团队(本身就是一个实体)

/**
* @ORM\OneToOne(targetEntity="Gluckez\bballBundle\Entity\Team", 
mappedBy="Owner")
* @ORM\Column(name="team_id")
*/
private $team;

我的团队有一个所有者,指的是用户:

/**
 * @var User $Owner  
 * @ORM\OneToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", 
inversedBy="team_id")
 * @ORM\JoinColumn(name="Owner_id", referencedColumnName="id")
 */
protected $Owner;

现在在我的用户表中,我可以看到关系,它指向正确的团队。但是学说抱怨逆向用户#团队,这是不存在的(即使我很确定我已经定义了它?) 我已经无数次尝试更改inversedby,mappedby,name,referencedcolumnName,以及删除和重新创建数据库和表。更新学说模式。我不在乎。 没有一个答案,也没有学说的文件指出我正确的方向。我意识到这里有很多线索,但没有一个是清楚的,甚至没有回答。

1 个答案:

答案 0 :(得分:0)

试试这样:

所有者实体

/**
* @ORM\OneToOne(targetEntity="Gluckez\bballBundle\Entity\Team", mappedBy="owner")
*/
private $team;

团队实体

/**
 * @ORM\OneToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="team")
 */
protected $owner;

参考:Association Mapping