1

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

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

4

1 回答 1

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

编辑:对于 OneToOne 关系,您不能使用mappedByand inversedBy

于 2013-10-07T07:45:16.177 回答