Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2014, 13:30
pmeninsaxmus16
 
Fecha de Ingreso: noviembre-2013
Mensajes: 83
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Error de Persistencia con formularios Embebidos

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)