Comment puis-je vérifier si la requête est une requête POST ou GET dans Symfony2 ou Symfony3
J'ai juste demandé si il ya un moyen très facile (le mieux: un simple $this->container->isGet()
je peux appeler) pour déterminer si la demande est un $_POST
ou un $_GET
demande.
Selon les docs,
Une Demande d'objet contient des informations sur la demande du client. Cette
l'information peut être consultée par le biais de plusieurs propriétés publiques:
request
: l'équivalent d'$_POST
;query
: l'équivalent d'$_GET
($request->query->get('name')
);
Mais je ne vais pas être en mesure d'utiliser if($request->request)
ou if($request->query)
à vérifier, parce que les deux sont des attributs existants dans la classe de Requête.
Donc je me demandais de Symfony propose quelque chose comme la
$this->container->isGet();
//or isQuery() or isPost() or isRequest();
mentionnés ci-dessus?
- vous pouvez faire comme $request->get('nom').quelle que soit la méthode de requête post ou get..si u veux vraiment déterminer la méthode de requête vous pouvez ajouter un "exigences: [_method: POST/GET/SUPPRIMER....]"
- Tu veux dire en ajoutant cette ligne à la configuration de routage? Je ne cochez la case limiter les méthodes de là et maintenant, j'ai envie de les déterminer, dans le contrôleur.
- si u cochez la case limiter les méthodes dans votre parcours,alors il suffit d'utiliser $request->get('nom') dans votre contrôleur,c'est assez
- Je suis l'aide d'un contrôleur pour gérer à la fois des méthodes, par exemple dans les formulaires (où vous pouvez utiliser
$form->isSubmitted()
pour vérifier cela. Mais dans mon cas, je n'ai pas de/utiliser un formulaire.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez le faire dans le contrôleur,
ou dans votre modèle (en service), à injecter ou à passer à l'objet de Demande à votre modèle la première, puis de faire de même comme ci-dessus.
Modifier: pour Symfony 3 utilisez ce code
$this->getRequest()
est obsolète depuis Symfony 2.4.Ou ceci:
Puisque la réponse a suggéré d'utiliser le
getRequest()
qui est maintenant obsolète,Vous pouvez le faire par ce:
Ou ceci:
Que vous pouvez faire:
Viens de lire un peu sur demande objet sur Symfony API page.