07/08/2012, 21:07
|
| | 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()));
}
|