Campo Select con valor por defecto en symfony2

2,242 views
Skip to first unread message

Guillimon

unread,
Mar 3, 2012, 4:30:39 PM3/3/12
to symfony-es
Hola grupo.

Al crear un formulario, si uno de los campos es un select (o choice),
como se hace para mostrarlo con un valor por defecto?

En symfony 1.4 lo hacia con setDefault, pero en symfony2 no se cono
hacerlo.

Gracias

hexapodo

unread,
Mar 14, 2012, 1:01:16 PM3/14/12
to symfony-es

Hola,

tengo el mismo problema: quiero seleccionar una opcion predeterminada
en el combo, como lo hago?

Guillimon, encontraste la forma de hacerlo?

gracias

Ness

unread,
Mar 15, 2012, 3:38:16 AM3/15/12
to symfony-es
No sé cómo será con twig, pero con Html y JS tienes dos opciones:

1. Marcar la opción como "selected"
<select id="Mi_Combo">
<option value="Opc1">Opcion 1</option>
<option selected value="Opc2">Opcion 2</option>
<option value="Opc3">Opcion 3</option>
</select>

2. seleccionar por javascript
<script>
document.getElementById("Mi_Combo").value='Opc3';
</script>

No sé si esto te servirá.

Miguel Ángel Martín

unread,
Mar 15, 2012, 4:23:49 AM3/15/12
to symfo...@googlegroups.com
En el controlador te creas un objeto y le das valor y se lo pasas por parametro al createForm.

Guillimon

unread,
Mar 15, 2012, 10:39:10 AM3/15/12
to symfo...@googlegroups.com
Entonces como sería??

Tengo una tabla con los codigos postales y otra con los usuarios
El usuario tiene una referencia al codigo postal
Partiendo que esta grabado en la base de datos y quiero modificar los datos de usuario, en el controlador hago los siguiente:

         $em = $this->getDoctrine()->getEntityManager();
         $usuario = $em->getRepository('UsuarioBundle:Usuario')->findOneByid($this->get('security.context')->getToken()->getUser()->getId());;
               
         $formulario = $this->createForm(new ModificaUsuarioType(), $usuario);

Y el formulario ModificaUsuarioType:


            $builder
                   ->add('nombre')
                   // ...

                   ->add('cpostal_id', 'entity', array(
                        'class' => 'PedidoBundle:CodigoReparto',
                        'property_path' => false,
                        'multiple'  => false,
                        'expanded' => false,
                        'label' => false,
                        'query_builder' => function(EntityRepository $em) {
                                $db= $em->createQueryBuilder('p');
                                $db->where('p.activo = :activo');
                                $db->orderBy('p.cpostal');
                                $db->setParameter('activo', '1');

                                return $db;

                            }))                   


En este caso, me rellena bien los datos. Me muestra un combo con los código postal mostrados como activo=1 (perfecto) pero por defecto seleccionado el primer valor del combo, no el que está guardardado en la base de datos.

JERONIMO SALAZAR RAMIREZ

unread,
Mar 16, 2012, 11:51:56 AM3/16/12
to symfo...@googlegroups.com
Para asignar un valor por default yo lo hago con :
//Obtienes el widget y con setData le asignas el valor por default, en este caso el widget es un tipo entity,

$form->get('estado_domicilio')->setData($em->getReference('XanaduSportsBundle:Estado', $estadoId));

--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es



--
-------------------------------------------------------
Si programas  en PHP, usa Symfony
-------------------------------------------------------
Navega mas seguro con FireFox
------------------------------------------------------


Guillimon

unread,
Mar 20, 2012, 7:08:39 AM3/20/12
to symfo...@googlegroups.com
Perfecto!!!!

Gracias
Reply all
Reply to author
Forward
0 new messages