Hola cordial saludo a todos, espero por favor me puedan ayudar con el siguiente problema:
Al momento de editar un formulario con campos embebidos, solo se actualizan los datos de Form principal, mas no los otros campos embebidos que añado.
Me explico: tengo los siguientes Formularios
- CpuType:dentro del cual agrego, Discos, Memorias, U.opticas, T.de red
public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nse') ->add('nom') ->add('fab') ->add('sepro') ->add('nopro') ->add('nupro') ->add('lopro') ->add('vepro') ->add('fapro') ->add('arpro','choice', array( 'label' => 'Arquitectura', 'choices' => array( 'x86' => 'x86', 'x64' => 'x64', ))) ->add('rol') ->add('seccion') ->add('funcionando','choice', array( 'label' => 'En funcionamiento?', 'choices' => array( 'SI' => 'SI', 'NO' => 'NO', ))) ->add('discos', 'collection', array( 'type' => new DiscoType(), 'label' => 'Discos Duros', 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, 'by_reference' => false, // 'attr' => array( // 'class'=>'control-label' // ) )) ->add('memorias', 'collection', array( 'type' => new MemoriaType(), 'label' => 'RAM', 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, 'by_reference' => false, )) ->add('tredes', 'collection', array( 'type' => new TredType(), 'label' => 'Tarjetas de RED', 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, 'by_reference' => false, )) ->add('uopticas', 'collection', array( 'type' => new UopticaType(), 'label' => 'U. Optica', 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, 'by_reference' => false, )) ; }
-
DiscoType
public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nse', 'text', array( 'label' => 'S/N', 'attr' => array( 'class'=>'form-control' ), 'label_attr' => array( 'class'=>'control-label' ) )) ->add('fab', 'text', array( 'label' => 'Fabricante', 'attr' => array( 'class'=>'form-control' ), 'label_attr' => array( 'class'=>'control-label' ) )) ->add('modelo', 'text', array( 'label' => 'Modelo', 'attr' => array( 'class'=>'form-control' ), 'label_attr' => array( 'class'=>'control-label' ) )) ->add('cap', 'text', array( 'label' => 'Capacidad', 'attr' => array( 'class'=>'form-control' ), 'label_attr' => array( 'class'=>'control-label' ) )) ; }
-
CpuController
public function updateAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('DeteccionBundle:Cpu')->find($id); if (!$entity) { throw $this->createNotFoundException('Unable to find Cpu entity.'); } $deleteForm = $this->createDeleteForm($id); $editForm = $this->createEditForm($entity); $editForm->handleRequest($request); if ($editForm->isValid()) { $em->flush(); return $this->redirect($this->generateUrl('cpu_edit', array('id' => $id))); } return $this->render('DeteccionBundle:Cpu:edit.html.twig', array( 'entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), )); }
Al momento de editar, me guarda los datos de Cpu, y los otros campos se guardan pero sin la relación hacia Cpu. y solo pasa cuando edito, ya que cuando Agrego un nuevo Cpu todo funciona correctamente.
-
Les agradezco si me pueden dar una idea de que estaría fallando o que debería revisar