Estoy haciendo un formulario de usuarios y dichos usuarios pueden pertenecer a un grupo. Para mostrar un select en el formulario y que se guardara fue sencillo y lo hice de la siguiente manera:
$form = $this->createFormBuilder($usu) ->add('nom', 'text') ->add('username', 'text') ->add('correo', 'email') ->add('password', 'password') ->add('roles', 'entity', array( 'empty_value' => '', 'class' => 'ErDesarrolloUsuariosBundle:Roles', 'property' => 'nombre', )) ->getForm();
Eso me creó el formulario con su respectivo campo select con los roles o grupos. Al editar hago exactamente lo mismo:
$form = $this->createFormBuilder($usu) ->add('nom', 'text') ->add('username', 'text') ->add('correo', 'email') ->add('password', 'password', array( 'required' => false )) ->add('roles', 'entity', array( 'empty_value' => '', 'class' => 'ErDesarrolloUsuariosBundle:Roles', 'property' => 'nombre', )) ->getForm();
Y todos los campos traen su valor por defecto según lo que está en la base de datos menos en campo de roles. En la plantilla el formulario lo monto asi:
<div class="span9"> <div class="control-group"> {{ form_errors(formulario.nom) }} {{ form_label(formulario.nom, 'Nombre') }} <div class="controls" style="margin-left:0px;">{{ form_widget(formulario.nom, { 'attr': {'class': 'span12'} }) }}</div> </div> <div class="control-group"> {{ form_errors(formulario.roles) }} {{ form_label(formulario.roles, 'Roles de Usuario') }} <div class="controls" style="margin-left:0px;"> <input type="hidden" name="form[roles]" /> {{ form_widget(formulario.roles, { 'attr': {'class': 'general', 'style': 'width:100%'} }) }} </div> </div> <div class="control-group"> {{ form_errors(formulario.username) }} {{ form_label(formulario.username, 'Login') }} <div class="controls" style="margin-left:0px;">{{ form_widget(formulario.username, { 'attr': {'class': 'span10'} }) }} <span style="margin: 0;" class="btn-action single glyphicons circle_question_mark" data-toggle="tooltip" data-placement="top" data-original-title="Nombre que usara para iniciar sesion en el sistema"><i></i></span></div> </div> <div class="control-group"> {{ form_errors(formulario.correo) }} {{ form_label(formulario.correo, 'Correo') }} <div class="controls" style="margin-left:0px;">{{ form_widget(formulario.correo, { 'attr': {'class': 'span12'} }) }}</div> </div> <div class="control-group"> {{ form_errors(formulario.password) }} {{ form_label(formulario.password, 'Contraseña') }} <div class="controls" style="margin-left:0px;">{{ form_widget(formulario.password, { 'attr': {'class': 'span12'} }) }}</div> </div> </div>
Llevo más de una semana buscando la solución y no logro dar con la respuesta.
No da ningun error, solo no trae el campo seleccionado.
Respuestas
Era error de configuracion en las entidades, ya hice la correccion pertinente y ya me funciona bien.
@takashius
13 julio 2015, 22:52