Ответ 1
Если вы хотите сделать это в контроллере,
$this->getRequest()->isMethod('GET');
или в вашей модели (услуге), сначала вставьте или передайте объект Request в вашу модель, затем выполните то же, что и выше.
Мне просто интересно, есть ли очень простой способ (лучше всего: простой $this->container->isGet()
я могу позвонить), чтобы определить, является ли запрос запросом $_POST
или $_GET
.
В соответствии с документами
Объект запроса содержит информацию о запросе клиента. Эта доступ к информации можно получить через несколько общедоступных свойств:
request
: эквивалент$_POST
;query
: эквивалент$_GET
($request->query->get('name')
);
Но я не смогу использовать if($request->request)
или if($request->query)
для проверки, потому что оба являются существующими атрибутами в классе Request.
Так что мне было интересно, что Symfony предлагает что-то вроде
$this->container->isGet();
// or isQuery() or isPost() or isRequest();
упомянутого выше?
Если вы хотите сделать это в контроллере,
$this->getRequest()->isMethod('GET');
или в вашей модели (услуге), сначала вставьте или передайте объект Request в вашу модель, затем выполните то же, что и выше.
Или это:
public function myAction(Request $request)
{
if ($request->isMethod('POST')) {
}
}
Так как ответ предложил использовать 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
}
Просто прочитайте немного о request объект Symfony API.