据我阅读 Symfony 文档,我找不到任何有关 kernel.controller
事件中响应处理的信息。
对于 kernel.request
事件,文档说:
If a Response is returned at this stage, the process skips directly to the kernel.response event.
但是 kernel.controller
事件呢?
如果我在 kernel.controller
事件监听器中返回响应,响应将发送到客户端,但进程不会取消,并且会调用请求的 Controller 操作。
是否可以在 kernel.controller
事件中发送响应而不继续发送到请求的 Controller ?
最佳答案
您可以通过更改 FilterControllerEvent 中的 Controller 来间接实现。
您可以使用任何可调用对象作为 Controller ,只要它最终返回一个 Response 对象。在您的事件监听器中,您可以执行以下操作:
$event->setController(function() {
return new Response();
});
当然,您可以在 Controller 中返回任何类型的响应。
关于httprequest - Symfony kernel.controller事件发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037245/