我只是想知道是否有一种非常简单的方法(最好:我可以调用一个简单的$this->container->isGet()
)来确定请求是$_POST
还是$_GET
请求。
根据文件,
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();
如上所述?
答案 0 :(得分:64)
如果你想在控制器中这样做,
$this->getRequest()->isMethod('GET');
或在您的模型(服务)中,首先将Request对象注入或传递给您的模型,然后像上面那样执行相同操作。
修改:对于Symfony 3,请使用此代码
if ($request->isMethod('post')) {
// your code
}
答案 1 :(得分:39)
或者这个:
public function myAction(Request $request)
{
if ($request->isMethod('POST')) {
}
}
答案 2 :(得分:4)
由于答案建议使用现已弃用的getRequest()
,
你可以这样做:
$this->get('request')->getMethod() == 'POST'
答案 3 :(得分:2)
或者这个:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
if ($request->getMethod() === 'POST' ) {
}
答案 4 :(得分:0)
你可以这样做:
if($this->request->getRealMethod() == 'post') {
// is post
}
if($this->request->getRealMethod() == 'get') {
// is get
}
请在request页面上阅读Symfony API对象。