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