Bonjour,
Je veux associer les utilisateurs à des groupes qui sont enregistrés dans BD.
Voici ma Entity : Group
<?php
namespace Tungenius\UsersBundle\Entity;
use FOS\UserBundle\Entity\Group as BaseGroup;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_group")
*/
class Group extends BaseGroup
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
Et Entity : User
<?php
namespace Tungenius\UsersBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="Tungenius\UsersBundle\Entity\Group")
* @ORM\JoinTable(name="fos_user_user_group",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
/**
* @ORM\OneToOne(targetEntity="Tungenius\UsersBundle\Entity\Profils", cascade={"remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $profil;
public function __construct()
{
parent::__construct();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set profil
*
* @param Profils $profil
* @return User
*/
public function setProfil(Profils $profil)
{
$this->profil = $profil;
return $this;
}
/**
* Get profil
*
* @return Profils
*/
public function getProfil()
{
return $this->profil;
}
/**
* Get groups
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getGroups()
{
return $this->groups;
}
}
Pour l'intégration du bundle, j'ai suivi le tuto de Alex-D.
Merci de m'aider, je suis vraiment bloquer !
Pourrais-tu être plus précis ? Associer des utilisateurs a des groupes qui sont dans ta base de données ?
Je n'ai jamais utilisé les groupes de fosuserbundle mais (je dis peut-être une connerie) il me semble que ce ne sont pas des groupes type "facebook" mais plutôt des "groupes" qui permettent d'attribuer un ROLE similaire à un groupe d'utilisateurs.
Merci pour votre réponse Devict.
Je voulais dire par le mot groupe que c'est un rôle.
Oui, comment je peut attribuer un ROLE similaire à un groupe d'utilisateur en sauvegardant les rôles dans une table "group".
En fait j'ai deux problèmes, Je veux :
Pour le rôle par défaut tu dois créer un constructeur dans ton entité User y attribuer le ROLE_USER. Pour ton autre problème c'est juste une histoire de création de formulaire. Si c'est juste ça je ne vois pas pourquoi tu as besoin des groupes :).
J'ai besoin des groupes parce-que j'ai pas trouvé un moyen pour récupérer les rôles d'une manière distincte(pour remplir ma liste déroulante) depuis l'entité User parce-que Doctrine enregistre les rôles avec un type DC2Type:array (ex : a:1:{i:0;s:10:"ROLE_ADMIN";}) dans la table fos_user. S'il y a un moyen comment le faire ? Et si c'est possible est-ce-que vous pouvez me donner la démarche pour comment créer une bonne gestion d'utilisateurs avec Symfony 2 ?
Ah oui j'ai cherché ça a l'air plus compliqué que ce que je pensais. J'ai pas creusé la question mais en fouinant un peu j'ai trouvé un guide qui pourrait t'aider http://blog.jmoz.co.uk/symfony2-fosuserbundle-roles