1

我想知道生成的多对多关系的默认行为:虽然在保持关系的拥有方时关系正确地存储在关联表中,但反转方的持久化不会更新数据库中的关系表.

我通过 simfony2 生成了 2 个 CRUD,到目前为止至少在这个“问题”上运行良好。我阅读了一些线程和教义 2 文档,但没有进一步了解。

还尝试在一侧和两侧使用 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;
}

控制器类尚未修改,因为我确信它可以使用默认行为!我错了吗?

请帮帮我!

4

0 回答 0