Ver Mensaje Individual
  #9 (permalink)  
Antiguo 23/07/2014, 14:22
Avatar de fhederico
fhederico
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: createFormBuilder no carga misma Entidad pasada

Si, tienes razon pero no. La logica que me indicas efectivamente tiene sentido, pero es ilogico tener que crear una relacion con Arrendador para obtener lo que deseo, de todos modos agradezco mucho tu ayuda.

Dejo la solucion

http://stackoverflow.com/questions/15752115/symfony2-set-a-selected-value-for-the-entity-field


Dejo el controllers como quedo con la solucion que era muy simple al final

Código PHP:
Ver original
  1. $entity = $em->getRepository('ANWebBundle:Arrendador')->findOneById($id);
  2.      
  3. $form   = $this->createFormBuilder($entity)
  4.                 ->add('nombre')
  5.                 ->add('id', 'entity',
  6.                     array(
  7.                         'class' => 'ANWebBundle:Arrendador',
  8.                         'empty_value' => 'texto.label.arrendador.add.opcionDefault',
  9.                         'query_builder'  => function(EntityRepository $er)
  10.                                             {
  11.                                                 return $er    ->createQueryBuilder('a')
  12.                                                             ->orderBy('a.apellidoPaterno', 'ASC');
  13.                                             }
  14.                     )
  15.                 )
  16.                 ->getForm()
  17.             ;
  18.  
  19. //Solucion:
  20. //En el Hijo, setea la entidad que le indico y hace el match como lo requeria ^^
  21. $form->get('id')->setData($entity);
  22.  
  23.      
  24. return array(
  25.                 'entity' => $entity,
  26.                 'form'   => $form->createView()
  27.             );


EDITO:

Solo hay que fijarse que si la entidad pasada no tiene datos, puede producir error, asi que se deberia agregar alguna validacion antes del "setData" ;)


Gracias
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)

Última edición por fhederico; 23/07/2014 a las 14:33 Razón: Add Info