2016-07-20 13 views
0

Ich versuche, Benutzer zu Rollengruppen hinzuzufügen, aber aus irgendeinem Grund kann ich dies nicht erreichen. Ich folgte der Dokumentation auf Symfony Website http://symfony.com/doc/current/bundles/FOSUserBundle/groups.html. Das Objekt ist erstellt und es ist korrekt, aber auf Flush passiert nichts.FOSUserBundle Benutzer addGroup speichert nicht in der Datenbank

UserRoleGroups sind bereits im DB definiert.

Spar

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

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

Alle anderen Änderungen, die ich auf $ oUser Objekt tun, außer für diese gespeichert.

Benutzer Entity

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 Entity

class UserRoleGroups extends BaseGroup 
{ 

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

Bitte geben Sie den entsprechenden Code an. –

+0

Ich habe meine Frage mit dem Code aktualisiert. –

Antwort

0

Problem war in der Benutzer Entity kein addUserRoleGroup definiert war.

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

Das sollte also das Problem lösen.