Как я могу проверить, был ли запрос POST или GET request в Symfony2 или Symfony3
мне просто интересно, есть ли очень простой способ (лучше всего: простой $this->container->isGet()
Я могу позвонить), чтобы определить, является ли запрос $_POST
или $_GET
запрос.
согласно документам,
объект запроса содержит информацию о запросе клиента. Этот доступ к информации можно получить через несколько общедоступных свойств:
request
: из расчета$_POST
;query
: из расчета$_GET
($request->query->get('name')
);
но я не могу использовать if($request->request)
или if($request->query)
для проверки, потому что оба являются существующими атрибутами в классе запроса.
поэтому мне было интересно, что Symfony предлагает что-то вроде
$this->container->isGet();
// or isQuery() or isPost() or isRequest();
упомянутые выше?
5 ответов
Если вы хотите сделать это в контроллер,
$this->getRequest()->isMethod('GET');
или в вашей модели (службе) сначала введите или передайте объект запроса в вашу модель, а затем сделайте то же самое, как указано выше.
редактировать: для Symfony 3 Используйте этот код
if ($request->isMethod('post')) {
// your code
}
Так как ответ предложил использовать getRequest()
который теперь устарел,
Вы можете сделать это следующим образом:
$this->get('request')->getMethod() == 'POST'
или такой:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
if ($request->getMethod() === 'POST' ) {
}
вы могли бы сделать:
if($this->request->getRealMethod() == 'post') {
// is post
}
if($this->request->getRealMethod() == 'get') {
// is get
}
просто прочитайте немного о запрос объект Symfony API страница.