控制器中是否有可能获取请求类型?怎么样?
控制器中是否有可能获取请求类型?怎么样?
要检测请求是否为主服务器,需要使用 RequestStack
,应该注入你的控制器。请求堆栈有3种有用的方法
getCurrentRequest();
getMasterRequest();
getParentRequest();
该 getParentRequest()
如果当前请求是主服务器,则将始终返回null。
我自己正在寻找这个,似乎它只是传递,所以似乎没有一个地方知道它是什么。
我想解决这个问题的方法是创建一个简单的kernel.request监听器,它只是为请求添加一个属性。下面的粗略(未经测试)代码:
public function onKernelRequest(GetResponseEvent $event)
{
$event->getRequest()->attributes->set('_request_type', $event->getRequestType());
}
然后在控制器中你应该能够做到:
$requestType = $this->getRequest()->attributes->get('_request_type');
这是未经测试的。您需要写出完整的侦听器类并将其添加到服务配置文件中,但除此之外我认为这将起作用。
容易,只需拨打电话 getMethod()
你的方法 Request
目的:
$method = $this->get('request')->getMethod();
这将返回当前请求的HTTP方法,例如 GET
, POST
, PUT
要么 DELETE
。
要检测请求是否为主服务器,需要使用 RequestStack
,应该注入你的控制器。请求堆栈有3种有用的方法
getCurrentRequest();
getMasterRequest();
getParentRequest();
该 getParentRequest()
如果当前请求是主服务器,则将始终返回null。
我自己正在寻找这个,似乎它只是传递,所以似乎没有一个地方知道它是什么。
我想解决这个问题的方法是创建一个简单的kernel.request监听器,它只是为请求添加一个属性。下面的粗略(未经测试)代码:
public function onKernelRequest(GetResponseEvent $event)
{
$event->getRequest()->attributes->set('_request_type', $event->getRequestType());
}
然后在控制器中你应该能够做到:
$requestType = $this->getRequest()->attributes->get('_request_type');
这是未经测试的。您需要写出完整的侦听器类并将其添加到服务配置文件中,但除此之外我认为这将起作用。
容易,只需拨打电话 getMethod()
你的方法 Request
目的:
$method = $this->get('request')->getMethod();
这将返回当前请求的HTTP方法,例如 GET
, POST
, PUT
要么 DELETE
。