symfony2 data all php symfony request http-post http-get

php - data - ¿Cómo puedo verificar si la solicitud fue una solicitud POST o GET en Symfony2 o Symfony3?



symfony request get attributes (5)

Me pregunto si hay una manera muy fácil (mejor: un simple $this->container->isGet() puedo llamar) para determinar si la solicitud es una solicitud $_POST o $_GET .

De acuerdo con los documentos,

Un objeto Request contiene información sobre la solicitud del cliente. Se puede acceder a esta información a través de varias propiedades públicas:

  • request : equivalente de $_POST ;
  • query : equivalente de $_GET ( $request->query->get(''name'') );

Pero no podré usar if($request->request) o if($request->query) para verificar, porque ambos son atributos existentes en la clase Request.

Así que me preguntaba si Symfony ofrece algo como el

$this->container->isGet(); // or isQuery() or isPost() or isRequest();

¿mencionado anteriormente?


Como la respuesta sugerida para usar getRequest() ahora está en desuso, puede hacerlo de esta manera:

$this->get(''request'')->getMethod() == ''POST''


O esto:

public function myAction(Request $request) { if ($request->isMethod(''POST'')) { } }


O esto:

use Symfony/Component/HttpFoundation/Request; $request = Request::createFromGlobals(); if ($request->getMethod() === ''POST'' ) { }


Podrías hacerlo:

if($this->request->getRealMethod() == ''post'') { // is post } if($this->request->getRealMethod() == ''get'') { // is get }

Solo lea un poco sobre el objeto de request en la página de la API de Symfony .


Si quieres hacerlo en el controlador,

$this->getRequest()->isMethod(''GET'');

o en su modelo (servicio), inyecte o pase el objeto Solicitud primero a su modelo, luego haga lo mismo como el anterior.

Editar : para Symfony 3 usa este código

if ($request->isMethod(''post'')) { // your code }