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

Symfony2 Obtener Datos Form

Estas en el tema de Symfony2 Obtener Datos Form en el foro de Symfony en Foros del Web. Hola a todos, Estoy empezando con Symfony2 y tengo una duda, tengo una funcion que crea el formulario, etc, hasta ahi bien, y luego tengo ...
  #1 (permalink)  
Antiguo 05/12/2011, 04:10
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Symfony2 Obtener Datos Form

Hola a todos,

Estoy empezando con Symfony2 y tengo una duda, tengo una funcion que crea el formulario, etc, hasta ahi bien, y luego tengo otra funcion que es la que utiliza el action del formulario, que guarda datos en la db, pero ¿como hago para pasar los datos de los campos del formulario a la funcion de guardar?.

Gracias. Un saludo.
  #2 (permalink)  
Antiguo 05/12/2011, 06:38
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Hola Francis, a ver si entendi. en tu controlador tenes una funcion que te genera el Formulario, luego en la vista lo mostras y pones el action del formulario con un action del controlador?
si es asi, lo que debes hacer es $request= $this->get('request'); y volver a poner el formulario, esa es una de las formas.... pero nose bien como es tu problema, tienes alguna clase? podrias poner algo mas especifico asi entenedemos mejor el problema...saludos!
__________________
Gimnasia y esgrima de la plata
  #3 (permalink)  
Antiguo 05/12/2011, 07:04
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Mensaje Respuesta: Symfony2 Obtener Datos Form

Hola, gracias por contestar.

A ver si me explico, tengo un objeto Persona, y luego en el controlador tengo las funciones para crear el formulario y para guardar en la base de datos, en el action del formulario, llamo a la funcion de guardar en la bd.

Esta es la funcion de crear el formulario:
Código PHP:
public function showFormAction()
    {
        
$persona = new Persona();
        
        
        
$form $this->createFormBuilder($persona)
                        ->
add('Nombre''text', array('required'=>true))
            ->
add('Apellidos''text', array('required'=>false))
            ->
add('Direccion''text', array('required'=>false))
            ->
add('CPostal''integer', array('required'=>false))
            ->
add('Ciudad''text', array('required'=>false))
            ->
add('Provincia''text', array('required'=>false))
            ->
add('Pais''text', array('required'=>false))
            ->
add('Telefono''integer', array('required'=>true))
            ->
add('Email''text', array('required'=>false))
                        ->
getForm();
        
        return 
$this->render('AgendaBundle:Default:new.html.twig', array(
                        
'form' => $form->createView(),
                ));
    } 

Esta es la funcion de guardar en la bd:
Código PHP:
public function createAction()
    {
             
$persona = new Persona();
             
$persona->setNombre('');
             
$persona->setApellidos('');
         
$persona->setDireccion('');
         
$persona->setCPostal('');
         
$persona->setCiudad('');
         
$persona->setProvincia('');
         
$persona->setPais('');
         
$persona->setTelefono('');
         
$persona->setEmail('');
        

             
$em $this->getDoctrine()->getEntityManager();
             
$em->persist($persona);
             
$em->flush();

         return 
$this->redirect($this->generateUrl('AgendaBundle_homepage'));
    } 
No se si asi estara mas claro lo que necesito, ya me decis algo.

Gracias. Un saludo.
  #4 (permalink)  
Antiguo 05/12/2011, 08:58
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Proba de esta forma.Yo tmb estoy hace poco Symfony2. Creo que para recuperar los datos tenes que hacer esto...Avisame si te soluciono el problema...saludos

public function createAction() {

$request= $this->get('request');
$persona = new Persona();
$form = $this->createFormBuilder($persona)
->add('Nombre', 'text', array('required'=>true))
->add('Apellidos', 'text', array('required'=>false))
->add('Direccion', 'text', array('required'=>false))
->add('CPostal', 'integer', array('required'=>false))
->add('Ciudad', 'text', array('required'=>false))
->add('Provincia', 'text', array('required'=>false))
->add('Pais', 'text', array('required'=>false))
->add('Telefono', 'integer', array('required'=>true))
->add('Email', 'text', array('required'=>false))
->getForm();
$form->bindRequest($request);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($persona);
$em->flush();

return $this->redirect($this->generateUrl('AgendaBundle_homepage'));
__________________
Gimnasia y esgrima de la plata
  #5 (permalink)  
Antiguo 05/12/2011, 09:30
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Si que me funciona, ya puedo insertar lo del formulario.

Muchisimas gracias. Un saludo.
  #6 (permalink)  
Antiguo 05/12/2011, 09:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Buenisimo, me alegra haberte ayudado. Saludos!
__________________
Gimnasia y esgrima de la plata
  #7 (permalink)  
Antiguo 05/12/2011, 09:43
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Una cosa mas, para ahora hacer lo mismo pero en lugar de crear registros, modificarlos, ¿deberia crear otro formulario igual o puedo utilizar el mismo que uso para crear y asi no duplicar?.

Gracias.
  #8 (permalink)  
Antiguo 05/12/2011, 10:02
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

habria que ver...de alguna forma se podria reutilizar. Intenta reutilizarlo, se tendria q poder utilizar. Sino puedes crea uno nuevo....
Por otro lado si quieres hacer alta,baja y modificacion de alguna clase, en este caso Persona, Symfony2 tiene un comando que te lo genera solo:
http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_doctrine_crud.html

Podes probarlo si te interesa...
cualquier cosa consultame.... saludos!
__________________
Gimnasia y esgrima de la plata
  #9 (permalink)  
Antiguo 05/12/2011, 12:41
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

¿Como utilizo la funcion en el action de un formulario, cuando la funcion requiere un parametro id?. Es que cuando he puesto en el action del fichero twig el nombre asignado en el fichero routing para esa funcion que requiere el parametro, me da error.

Creo que me he liado un poco para explicarlo, si no se entiende ya me decis algo e intento explicar mejor el tema.

Gracias. Un saludo.
  #10 (permalink)  
Antiguo 06/12/2011, 04:22
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

¿Alguien me echa un cable please?, referente a la duda del post anterior, este es el error que me muestra.

An exception has been thrown during the rendering of a template ("The "AgendaBundle_update" route has some missing mandatory parameters ("id").") in AgendaBundle:Default:update.html.twig at line 1.

Gracias.
  #11 (permalink)  
Antiguo 07/12/2011, 05:38
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Si por favor, si puedes explica mejor el problemita.... este error a mi me ha pasado, es que intenta utilizar el id que indica ahi en la linea 1 del twig, pero no puede porque no existe dicho valor...pero por ahi si vemos un poco de codigo y explicas un poquito mas podemos sacarlo.. saludos!!
__________________
Gimnasia y esgrima de la plata
  #12 (permalink)  
Antiguo 07/12/2011, 14:10
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Symfony2 Obtener Datos Form

Al final lo resolvi con un apaño, quizas no sea lo mejor, pero funciona, jeje.

Gracias por tu ayuda. Un saludo.

Etiquetas: datos..., symfony2, 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 10:22.