Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2011, 17:23
utopiko
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 9 meses
Puntos: 2
Problema con Update en objeto desde formulario(no modifica)

Buenos dias, toda la semana casi sin preguntar nada!!(Tampoco he podido hacer mucho caso...)

En esta ocacion tengo problemas al hacer el update. Tengo varios problemas, el primero de ellos es que querria saber si es posible(o recomendable) hacer el insert y el update desde un formulario con la misma accion. Ejemplo, tengo la accion empresa_details y ahora mismo si le paso un 0 como parametro(no se pasar parametros nulos), me hace un insert y si el paso un identificador valido me muestra el formulario con los datos rellenos, pero al darle al botno no se como decirle en el controlador que no es un insert si no un Update.
El segundo problema, es que de todas formas algo hago mal al hacer el update, porque he modificado el codigo para que no me haga el insert sino que me haga un Update la accion empresa_details, me muestra los datos pero si los modifico y le doy al boton de guardar no me lo registra en la bd. Este es mi codigo en el controlador de empresas.
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.     }