Foros del Web » Programando para Internet » PHP » Symfony »

Añadir campo clave foránea a formulario

Estas en el tema de Añadir campo clave foránea a formulario en el foro de Symfony en Foros del Web. Hola a todos, en el proyecto que estoy haciendo, necesito añadir un campo al formulario para que almacene el usuario que registra una mascota. Symfony2 ...
  #1 (permalink)  
Antiguo 12/12/2013, 07:54
 
Fecha de Ingreso: noviembre-2013
Mensajes: 14
Antigüedad: 10 años, 5 meses
Puntos: 0
Añadir campo clave foránea a formulario

Hola a todos,

en el proyecto que estoy haciendo, necesito añadir un campo al formulario para que almacene el usuario que registra una mascota.

Symfony2 me ha creado un campo IdUsuario que es un select para que escoja el usuario que ha registrado la mascota.
Lo que quiero es que dicho campo obtenga automaticamente el usuario que registre la mascota y se almacene como clave foránea en la base de datos, sin necesidad de que se elija el usuario.

Estoy un poco perdido en esto y no sé muy bien que es lo que tengo que hacer.

Gracias a todos.

Saludos!
  #2 (permalink)  
Antiguo 12/12/2013, 10:22
 
Fecha de Ingreso: noviembre-2013
Mensajes: 14
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Añadir campo clave foránea a formulario

Me contesto yo mismo, por si a alguien le sirve de ayuda. En la función para enviar el formulario, en el vloque donde compruebo si el form es válido introduzco estas dos lineas:
//Obtengo el id del usuario conectado
$usuario = $this->get('security.context')->getToken()->getUser();
// Establezco el id con set
$entity->setIdUsuario($usuario);

Finalmente, borro el emento IdUsuario que me agrega por defecto Symfony2 como campo del formulario

Código PHP:
Ver original
  1. public function createAction(Request $request)
  2.     {
  3.         $entity = new Perrobuscado();
  4.         $form = $this->createCreateForm($entity);
  5.         $form->handleRequest($request);
  6.  
  7.         if ($form->isValid()) {
  8.             $usuario = $this->get('security.context')->getToken()->getUser();
  9.             $entity->setIdUsuario($usuario);
  10.             $em = $this->getDoctrine()->getManager();
  11.             $em->persist($entity);
  12.             $em->flush();
  13.             ...................................................

Etiquetas: campo, clave, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.