Buenas, tengo una duda bastante grande.
Tengo mis usuarios desde la base de datos y los roles tambien, la relacion en la base de datos esta funcionando muy bien.
Mi problema es el siguiente, el FormBuilder lo tengo de la siguiente manera:
$form = $this->createFormBuilder($usuarios)
->add('nom', 'text')
->add('username', 'text')
->add('correo', 'email')
->add('password', 'repeated', array(
'type' => 'password',
'invalid_message' => 'Las dos contraseñas deben coincidir',
'required' => false,
))
->add('grupos')
->getForm();
Y
el monta el select con los grupos (roles) pero hay roles que no quiero
que sean visibles para todo el mundo sino solo para mi, o simplemente
que no se puedan asignar desde el entorno web y que yo lo asigne desde
la BD directamente, tal es el caso de un rol que se llama SUPER_ADMIN
que como podran entender engloba todos los demas roles en la definicion
de security.yml
En mis intentos por dar con la solucion lo hice de esta forma:
$form = $this->createFormBuilder($usu)
->add('nom', 'text')
->add('username', 'text')
->add('correo', 'email')
->add('password', 'repeated', array(
'type' => 'password',
'invalid_message' => 'Las dos contraseñas deben coincidir'
))
->add('grupos', 'entity', array(
'class' => 'ErdeAdminBundle:Grupos',
'property' => 'nombre',
'multiple' => 'true',
'query_builder' => function(GruposRepository $ur) {
return $ur->createQueryBuilder('u')
->where('u.id > 1');
},
'required' => true,))
->getForm(); Y
hace lo que quiero, cuando voy a agregar me filtra como yo quiero y no
me trae los roles que no deseo mostrar, pero al momento de editar con
ese mismo codigo no me trae los resultados ya seleccionados.
Si guarda bien la seleccion, pero cuando voy a editar no me trae lo que esta guardado en la base de datos.
Lo
que quiero es una de dos cosas, o utilizar el primer codigo y aplicar
algo para filtrar los resultados, o con el segundo que se muestre lo que
trae desde la BD al momento de editar.