我在关系保存方面遇到了一些问题。 我有用户和个人资料。 并非所有用户都有个人资料,所以我认为个人资料是这种关系的所有者。 但是当我创建用户时。我有用户表单和个人资料表格。 我有
$user = new Entity\User();
$profile = new Entity\Profile();
$user->setProfile($profile);
我有用户对象
/**
* @ORM\OneToOne(targetEntity="My\InfoBundle\Entity\Profile",cascade={"persist", "remove"}, mappedBy="user")
*/
protected $profile;
在配置文件中
/**
* @ORM\OneToOne(targetEntity="My\UserBundle\Entity\User", inversedBy="profile")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
所以当我保存它时,user_id不会保存在配置文件表中。而且我没有关系到用户和个人资料。 我能解决这个问题吗?或者我应该在这种关系中拥有自己。
答案 0 :(得分:0)
class User {
public function setProfile(Profile $profile) {
$this->profile = $profile;
$profile->setUser($this);
}
}
编辑:对于OneToOne关系,您不得使用 mappedBy
和inversedBy
。