原则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为null; 为什么这是可以修复的。
我知道当你向用户添加角色时,关系会被保存,但这不是我想要的。
答案 0 :(得分:2)
修改AuthRole实体下的addUser
函数:
public function addAuthUser(AuthUser $authUser)
{
$authUser->setAuthRole($this); // important line
$this->authUsers[] = $authUser;
}
如果使用setter,则遍历整个阵列并在每个阵列上调用setAuthRole($this)
。