Hola amigos, nuevamente tengo un inconveniente a la hora de guardar lo datos de un formulario embebido, me explico mejor
1- tengo 2 entidades SchoolUseAdmin y SchoolUseResults, a nivel de relaciones SchoolUseResult tiene una llave foranea de SchoolUseAdmin
2-He creado un formulario embebido, donde guardo los datos de SchoolUseAdmin y SchoolUseResults
El error esta que cuando cargo el formulario me desplega la informacion de ambas entidades, pero a la hora de guardar los datos que he introducido, me guarda todo bien de SchoolUseAdmin, pero los datos de SchoolUseResults me guarda solo el ultimo valor, y los demas me los ingnora, pongo el codigo de mi controller para que me puedan decir donde esta mi error o que solucion puedo dar
Código PHP:
$em = $this->getDoctrine()->getManager('admission');
$resultsubjects = array();
$query = $em->createQuery('SELECT a FROM ABCAdmissionBundle:SchoolUseSubject a');
$subjects = $query->getResult();
foreach ($subjects as $subject){
$materia = $subject->getSubject();
$SchoolUseResultstmp = new SchoolUseResults();
$f = new SchoolUseResultsType();
$f->setName('subjec_'.$subject->getId());
$form_subjectstmp = $this->createForm($f, $SchoolUseResultstmp);
$form_subjectstmp->bind($request);
$SchoolUseResultstmp->setSubject($subject);
array_push($resultsubjects,$SchoolUseResultstmp);
$form_subjects[$materia] = $form_subjectstmp->createView();
}
$entity = new SchoolUseAdmin();
$entity->setCreatedDate(new DateTime());
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
$tribu = $form['tribeAsigned']->getData();
$grade = $form['gradeAsigned']->getData();
$entity->setTribeAsigned($tribu->getName());
$entity->setGradeAsigned($grade->getName());
$applicant=$entity->getApplicant()->getId();
$entity->getApplicant($applicant);
if ($form->isValid()) {
$em->persist($entity);
$em->flush();
foreach( $resultsubjects as $subject )
{
$subject->setSchoolresult($entity);
$em->persist($subject);
$em->flush();
}
En la parte del foreach ultimo es donde persisto los datos, para mi caso son 4, deberia de guardar asi de ejemplo, Result(6,7,8,9), pero solo guarda el ultimo valor 4 veces Result (9,9,9,9)