Doctrine2一对一关系父ID未保存在子级中

时间:2013-10-07 07:40:19

标签: php symfony doctrine-orm

我在关系保存方面遇到了一些问题。 我有用户和个人资料。 并非所有用户都有个人资料,所以我认为个人资料是这种关系的所有者。 但是当我创建用户时。我有用户表单和个人资料表格。 我有

$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不会保存在配置文件表中。而且我没有关系到用户和个人资料。 我能解决这个问题吗?或者我应该在这种关系中拥有自己。

1 个答案:

答案 0 :(得分:0)

class User {
    public function setProfile(Profile $profile) {
        $this->profile = $profile;
        $profile->setUser($this);
    }
}

编辑:对于OneToOne关系,您不得使用mappedByinversedBy