FOSUserBundle用户addGroup不保存在数据库中

时间:2016-07-20 09:47:23

标签: orm doctrine-orm symfony

我正在尝试将用户添加到角色组但由于某种原因我无法实现这一点。 我按照symfony网站http://symfony.com/doc/current/bundles/FOSUserBundle/groups.html上的文档进行了操作。该对象已创建并且正确但在刷新时没有任何反应。

UserRoleGroups已在DB中定义。

  

保存

$oGroup = $this->em->getRepository('UserBundle:UserRoleGroups')->findOneByName($sRole);

$oUser->addGroup($oGroup);
$this->em->persist($oUser);
$this->em->flush();

我对$ oUser对象所做的任何其他更改都会被保存,除了这个。

  

用户实体

class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToMany(
     *     targetEntity="App\UserBundle\Entity\UserRoleGroups"
     * )
     * @ORM\JoinTable(
     *     name="users_user_role_group",
     *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
     * )
     */
    protected $userRolesGroup;
  

UserRoleGroup实体

class UserRoleGroups extends BaseGroup
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

1 个答案:

答案 0 :(得分:0)

问题在于用户实体中没有定义addUserRoleGroup

/**
 * @param UserRoleGroups $userRoleGroups
 */
public function addUserRoleGroup(UserRoleGroups $userRoleGroups) {
    $this->userRolesGroup->add($userRoleGroups);
}

所以这应该解决问题。