Je me demandais simplement s'il existe un moyen très simple (le mieux: une simple $this->container->isGet()
que je peux appeler) pour déterminer si la demande est une demande $_POST
Ou $_GET
.
Selon les documents,
Un objet Request contient des informations sur la demande du client. Ces informations sont accessibles via plusieurs propriétés publiques:
request
: équivalent de$_POST
;query
: équivalent de$_GET
($request->query->get('name')
);
Mais je ne pourrai pas utiliser if($request->request)
ou if($request->query)
pour vérifier, car les deux sont des attributs existants dans la classe Request.
Je me demandais donc si Symfony propose quelque chose comme
$this->container->isGet();
// or isQuery() or isPost() or isRequest();
mentionné ci-dessus?
Si vous voulez le faire dans le contrôleur,
$this->getRequest()->isMethod('GET');
ou dans votre modèle (service), injectez ou passez d'abord l'objet Request à votre modèle, puis faites la même chose que ci-dessus.
Edit: pour Symfony 3 utilisez ce code
if ($request->isMethod('post')) {
// your code
}
Ou ca:
public function myAction(Request $request)
{
if ($request->isMethod('POST')) {
}
}
Puisque la réponse a suggéré d'utiliser getRequest()
qui est maintenant obsolète, vous pouvez le faire par ceci:
$this->get('request')->getMethod() == 'POST'
Ou ca:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
if ($request->getMethod() === 'POST' ) {
}
Vous pourriez faire:
if($this->request->getRealMethod() == 'post') {
// is post
}
if($this->request->getRealMethod() == 'get') {
// is get
}
Il suffit de lire un peu sur demande objet sur Symfony API page.