Recoger variables GET y POST en Symfony2

Veamos un ejemplo simple de como recoger los valores que nos llegan desde GET y POST en Symfony2. Simplemente tendremos que hacer uso de HttpFundation para acceder a diversas variables superglobales entre ellas GET y POST.

Ejemplo:

<?php

namespace Ejemplos\PruebasBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
//Usar request http fundation
use Symfony\Component\HttpFoundation\Request;


class PruebasController extends Controller
{
    public function indexAction(Request $request){        
        //Recoger GET
        $var=$request->query->get("page");
        var_dump("GET:".$var);
        
        //Recoger POST
        $var=$request->request->get("page");
        var_dump("POST:".$var);        

        die();
    }
  }

Para comprobar esto podemos usar Postman el cual nos permite jugar con las urls, hacer peticiones a APIs y demás sin tener que crear los formularios. Hacemos una petición POST y GET con Postman para ver los resultados.
recoger variables get y post en symfony2

Más información:
Acceder a los valores POST en Symfony2

Victor

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post

4 Comentarios

  1. Gracias por publicar este artículo. Me gustaría añadir dos apuntes:

    1) Si usas $request->get(‘page’); Symfony primero busca en el “query” y luego en el “request”, por lo que es muy cómodo para aplicaciones cambiantes y para no tener que pensar de dónde vienen los parámetros. La parte mala es que penaliza ligerísimamente el rendimiento (realmente es despreciable).

    2) Si pasas un valor como segundo parámetro de get(), Symfony te lo devuelve en caso de que la variable que hayas pedido no exista. Siguiendo tu ejemplo, es posible que en la primera página del listado la variable “page” no esté definida. Así que puedes usar $page = $request->get(“page”, 1); y la variable $page sería 1 cuando “page” no exista en la petición.

    Responder
    • Muchas gracias Javier !!

      Responder
  2. como puedo saber si me esta llegando parámetros por el post o por el get o solo se hizo una redirección a una url de mi sitio. Gracias de entemano

    Responder
    • Puedes utilizar esto para comprobar si te llegan parámetros por GET:
      $this->getRequest()->isMethod(‘GET’);

      O por post:
      $this->getRequest()->isMethod(‘GET’);

      Saludos 😉

      Responder

Poner un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *