リクエストが$_POST
リクエストであるか$_GET
リクエストであるかを判断するための非常に簡単な方法(最善:簡単な$this->container->isGet()
を呼び出すことができる)があるかどうか疑問に思いました。
ドキュメントによると、
Requestオブジェクトは、クライアント要求に関する情報を保持します。この情報には、いくつかのパブリックプロパティを介してアクセスできます。
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オブジェクトを挿入または渡し、次に上記と同じようにします。
編集:Symfony 3ではこのコードを使用します
if ($request->isMethod('post')) {
// your code
}
またはこれ:
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
}
リクエストSymfony API ページのオブジェクトについて少し読んでください。