Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Editar campo de formulario tipo Entity

10 de julio de 2015

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

#1

Era error de configuracion en las entidades, ya hice la correccion pertinente y ya me funciona bien.

@takashius

13 julio 2015, 22:52