Hola,
Sobre esto:
Código HTML:
Ver originalif ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
foreach($entity->getPartesEstudio() as $parte){
$parte->setIdEstudio($entity);
$em->persist($parte);//
}
$em->flush();
Yo lo deje asi, porque tambien tenia un problema similar
Código HTML:
Ver originalforeach ($entity->getPartesEstudio() as $parte)
{
$addParte = new ParteEstudio();
$addParte ->setIdEstudio($parte);
$em->persist($addParte );
}
$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$request = $this->getRequest();
//Si se envio, verificamos, si no, seteamos un formulario nuevo
if($request->getMethod() === 'POST')
{}
A y lo de "cascade" eso va en la entidad, es para que se actualicen en cascada.
Saludos