Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/08/2012, 21:07
yekamus
 
Fecha de Ingreso: agosto-2012
Mensajes: 6
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: problema en persistencia con formulario tipo entity

Era una estupidez, pero como soy nuevo en esto de Symfony no me habia dado cuenta: Cada vez me Gusta mas Symfony....

Código:
EL controlador

public function registroAction()
    {
       $form = $this->get('form.factory')->create(new UsuarioType(), array());
       
        
        
        $request = $this->get('request');
        if ($request->getMethod() == 'POST') {
            $form->bindRequest($request);

            if ($form->isValid()) {

                // Mensaje para notificar al usuario que todo ha salido bien
                $session = $this->get('request')->getSession();
                $session->setFlash('notice', 'Usuario Creado Satisfactoriamente');

                // cca -- Obtenemos el usuario
                $usuario = new Usuario();
              //  $tipo =new TipoCandidato;
                $usuarios = $form->getData();
                
               // $tipo = $usuarios['tipocandidato'];
               
              

                /*cca --
                 Aca se lee el dato para mantener la 
                 persistenacia de  N a 1 sin escribir en ambas tablas ...
                */
               // $comuna=  $this->getDoctrine()->getRepository('scgeBundle:Comuna')->find($usuarios['comuna_id']);
                
/* Aca es donde tengo el problema, si lo envio como int, no tengo problemas, pero si lo envio como entity comienzan los Errores*/

//$tipocandidato=  $this->getDoctrine()->getRepository('scgeBundle:TipoCandidato')->find($usuarios['tipocandidato']);
                
                $usuario->setRut($usuarios['rut']);
                $usuario->setSerialRut($usuarios['serial_rut']);
                $usuario->setNombre($usuarios['nombre']) ;
                $usuario->setApellidos($usuarios['apellidos']);
                $usuario->setDireccion($usuarios['direccion']);
                $usuario->setFono($usuarios['fono']);
                $usuario->setMovil($usuarios['movil']);
                $usuario->setGastolimite($usuarios['gastolimite']);
                // cca -- Aca se pone el dato en la tabla 1 a N
                $usuario->setComuna($usuarios['comuna_id']);
            
                $usuario->setTipocandidato($usuarios['tipocandidato']);
                // cca- Fin persistencia
                $usuario->setRol('ROLE_USER');
                $usuario->setEmail($usuarios['email']) ;
                $usuario->setPassword($usuarios['password']);
                $usuario->setBloqueado('0') ;


                // Codificamos el password
                
                $factory = $this->get('security.encoder_factory');
                $codificador = $factory->getEncoder($usuario);
                $password = $codificador->encodePassword($usuario->getPassword(), $usuario->getSalt());
                $usuario->setPassword($password);
                
                
                // Guardamos el objeto en base de datos
                $em = $this->get('doctrine')->getEntityManager();
                $em->persist($usuario);
              //  $em->persist($comuna);
              //  $em->persist($tipocandidato);
                $em->flush();

                // Logueamos al usuario
                $token = new UsernamePasswordToken($usuario, null, 'main', $usuario->getRoles());
                $this->get('security.context')->setToken($token);

                return $this->redirect($this->generateUrl('portada'));
            }
        }
        return $this->render('scgeBundle:Usuario:registro.html.twig', array('form' => $form->createView()));
    }