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
}