2

原则 2:双向关系,在不拥有的情况下添加实体不会持续存在

class AuthRole
{
    /**
     * @ORM\OneToMany(targetEntity="AuthUser", mappedBy="role", cascade={"persist","detach"})
     * @ORM\JoinColumn(name="role_id", referencedColumnName="id")
     */
    private $authUsers;
}

AuthRole 是非拥有方

class AuthUser 
{
    /**
    * @ORM\ManyToOne(targetEntity="AuthRole", inversedBy="authUsers", cascade={"persist","detach"})
    * @ORM\JoinColumn(name="role_id", referencedColumnName="id")
    */
    private $role;
}

AuthUser 是拥有方

如果我将用户添加到角色,则不会保存关系并且 AuthUser->role 为空;为什么会这样,这是否可以修复。

我知道当您向用户添加角色时,关系会被保存,但这不是我想要的。

4

1 回答 1

2

修改addUserAuthRole 实体下的函数:

public function addAuthUser(AuthUser $authUser)
{
  $authUser->setAuthRole($this); // important line
  $this->authUsers[] = $authUser;
}

如果您使用 setter,则遍历整个数组并调用setAuthRole($this)每个数组。

于 2012-08-22T11:29:49.853 回答