Symfony2:从反面与标准crud持续存在多对多关系

时间:2012-01-29 12:27:06

标签: symfony many-to-many doctrine-orm inverse persist

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

我通过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类尚未修改,因为我确信它可以使用默认行为!我错了吗?

请帮帮我!

0 个答案:

没有答案