yevg
yevg

Reputation: 1966

How to get query string in Symfony 4

I am trying to access the query string parameters in Symfony 4

namespace App\Controller;

use Symfony\Component\HttpFoundation\RequestStack;

class Home extends Controller {

    private $request;

    public function __construct(RequestStack $request){

        $this->request = $request;
    }

    public function getQueryString(){

       $req = $this->request->getCurrentRequest();

       print_r($req); // see all the request data

       // $req -> grab the query parameters
       // return query parameters
    }
}

I am using RequestStack and able to see a bunch of request data when I print the result of getCurrentRequest() (including the query parameters I need), but most of the methods are private and I am not able to access them.

How does one go about getting the request URL components (including query parameters) in Symfony?

Upvotes: 4

Views: 15137

Answers (3)

BVB Media
BVB Media

Reputation: 375

This works with Symfony 6:

GET

$value = $request->query->get('name_query');

POST

$value = $request->request->get('name_query');

BODY (REST API returns JSON response inside body)

$value = $request->getContent();

HEADER

$value = $request->headers->get('X-header-name');

Upvotes: 2

Francisco Luz
Francisco Luz

Reputation: 2943

// retrieves $_GET and $_POST variables respectively
$request->query->get('id');
$request->request->get('category', 'default category');

Source https://symfony.com/doc/4.3/introduction/http_fundamentals.html#symfony-request-object

Upvotes: 3

Imanali Mamadiev
Imanali Mamadiev

Reputation: 2654

For GET query:

$this->request->getCurrentRequest()->query->get('name_query');

For POST query:

$this->request->getCurrentRequest()->request->get('name_query');

Upvotes: 7

Related Questions