我想知道生成的多对多关系的默认行为:虽然在持久化关系的拥有方时关系正确地存储在关联表中,但是反向的持久性不会更新关系表在数据库中。
我通过simfony2生成了两个CRUD,到目前为止至少可以解决这个“问题”。我阅读了一些主题和doctrine2文档,但没有进一步。
还尝试在一方和双方使用cascade = {“persist”},但仍然没有运气。
任何帮助都会很棒:
这是我的用户实体:
/**
*
*
* @ORM\ManyToMany(targetEntity="SSV\AppBundle\Entity\Role", inversedBy="users")
* @ORM\JoinTable(name="users_roles",
* joinColumns={
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="role_id", referencedColumnName="id")
* }
* )
*/
private $roles;
/**
* Add role
*
* @param \SSV\AppBundle\Entity\Role $role
*/
public function addRole(SSV\AppBundle\Entity\Role $role)
{
$this->roles[] = $role;
}
/**
* Get roles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRoles()
{
return $this->roles;
}
和我的角色实体:
/**
*
*
* @ORM\ManyToMany(targetEntity="SSV\AppBundle\Entity\User", mappedBy="roles")
*/
private $users;
/**
* Add user
*
* @param SSV\AppBundle\Entity\User $user
*/
public function addUser(SSV\AppBundle\Entity\User $user)
{
$this->users[] = $user;
}
/**
* Get user
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsers()
{
return $this->users;
}
Controller类尚未修改,因为我确信它可以使用默认行为!我错了吗?
请帮帮我!