Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/04/2013, 10:16
Avatar de fhederico
fhederico
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 9 meses
Puntos: 23
Respuesta: ArrayCollection vacio.

Hola,

Sobre esto:

Código HTML:
Ver original
  1. if ($form->isValid()) {
  2.             $em = $this->getDoctrine()->getManager();
  3.             $em->persist($entity);
  4.             $em->flush();
  5.             foreach($entity->getPartesEstudio() as $parte){
  6.                 $parte->setIdEstudio($entity);
  7.                 $em->persist($parte);//  
  8.             }
  9.             $em->flush();


Yo lo deje asi, porque tambien tenia un problema similar


Código HTML:
Ver original
  1. foreach ($entity->getPartesEstudio() as $parte)
  2.                 {
  3.                     $addParte = new ParteEstudio();
  4.                     $addParte ->setIdEstudio($parte);
  5.                     $em->persist($addParte );
  6.                 }
  7.  
  8.                 $em->flush();

Hace lo mismo que el tuyo, con la diferencia que crea la Instancia nueva antes de setear.

Lo otro, no entiendo porque haces dos "$em->flush();", si cada vez que ejecutas el "$em->persist(...)", esto va quedando en memoria, puedes ejecutar varios y al final cuando ejecutas el "flush" cargara todas las consultas que se hayan generado con persist.

Por ultimo, te recomiendo que valides que tu formulario se haya enviado por ejemplo por Post

Código HTML:
Ver original
  1. $request = $this->getRequest();    
  2.        
  3.         //Si se envio, verificamos, si no, seteamos un formulario nuevo
  4.         if($request->getMethod() === 'POST')
  5.                   {}


A y lo de "cascade" eso va en la entidad, es para que se actualicen en cascada.

Saludos