Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/11/2011, 04:08
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: Problema con Update en objeto desde formulario(no modifica)

Cita:
Iniciado por utopiko Ver Mensaje
[...]
Código PHP:
Ver original
  1. /**
  2.      * @Route("/details/{pidEmpresa}", name="_empresa_details")
  3.      * @Template()
  4.      */
  5.     public function detailsAction($pidEmpresa){
  6.         $em = $this->get('doctrine.orm.entity_manager');
  7.        
  8.         $empresa = new \Acme\DemoBundle\Entity\CliClientes();
  9.         $form = $this->get('form.factory')->create(new AddEmpresaForm(),$empresa);
  10.  
  11.         $request = $this->get('request');
  12.      
  13.         $empresas = $em->getRepository('Acme\DemoBundle\Entity\CliClientes')->find($pidEmpresa);
  14.         $form = $this->createForm(new AddEmpresaForm(), $empresas);
  15.  
  16.          if ($request->getMethod() == 'POST') {
  17.             $form->bindRequest($request);
  18.  
  19.             if ($form->isValid()) {
  20.              // perform some action, such as save the object to the database
  21.              
  22.              $em->flush();
  23.  
  24.             return new RedirectResponse($this->generateUrl('_empresa_list'));
  25.         }
  26.     }
Imagino que en estas líneas tendrás que poner la función que realiza el update.
Código PHP:
Ver original
  1. if ($form->isValid()) {
  2.     // perform some action, such as save the object to the database
  3.     //algo así    
  4.     $em->getRepository(/* Entity */)->update(/* datos post */);
  5.  
  6.     $em->flush();
  7.     return new RedirectResponse($this->generateUrl('_empresa_list'));
  8. }
Donde la función update procesa los datos recibidos. (la función la tienes que crear)

No conozco Symfony (creo que es Symfony ) pero creo que anda por ahí la cosa.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight