He creado en symfony 2 entidades: usuario y función en relación muchos a muchos. Eso significa que cada usuario puede tener más roles y se pueden establecer roles para muchos usuarios.Symfony2 casilla de verificación de muchos a muchos
clase Usuario: Clase de
/**
* @ORM\Entity
* @ORM\Table(name="JEP_User")
* @ORM\Entity(repositoryClass="Chrchel\JepBundle\Repository\UserRepository")
*/
class User implements AdvancedUserInterface {
/**
* @ORM\Id()
* @ORM\Column(name="id",type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="username",type="string",length=100,unique=true)
*/
private $username;
/**
* @ORM\ManyToMany(targetEntity="Role", inversedBy="users")
*
*/
protected $roles;
//....
}
Rol:
/**
* @ORM\Table(name="JEP_Role")
* @ORM\Entity()
*/
class Role implements RoleInterface {
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id()
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @ORM\Column(name="name", type="string", length=30) */
protected $name;
/** @ORM\Column(name="role", type="string", length=20, unique=true) */
protected $role;
/** @ORM\ManyToMany(targetEntity="User", mappedBy="roles") */
protected $users;
//...
}
No puedo entender cómo componer generador de consultas en Symfony2 para listar todos los roles que existe y añadirlo al final de UserForm donde se pueden seleccionar (como casillas de verificación) roles otorgados al usuario. He intentado utilizar la colección como esta en UserType
->add('roles', 'collection',array('label' => 'Role', 'required' => false,'type'=> new RoleType()))
La mejor que recibo de Symfony se filas con cuadros de texto con los nombres seleccionados de papeles. Pero esto no es, lo que necesito.
establezca la opción 'expanded' en' true' para tener una lista de casillas de verificación. Y debe implementar el método '__toString()' en el modelo 'Rol' (usado para mostrar la etiqueta al lado de cada casilla de verificación. – GiDo
Encontré que tenía que agregar otro método a la entidad Usuario para devolver roles como una Colección en lugar de como una matriz - getRolesAsCollection. –
Y cómo se llama a este específico 'getRolesAsCollection' y dónde? –