Symfony onKernelRequest headers->set not received on @Route



当我想添加一些自定义标头时,我有函数onKernelRequest(在我的情况下api=true||$request->headers->set('api', "true")(在所有Request $request中,我都可以获得该标题,但是当我尝试注释时,它失败了:

  • onKernelRequest
public function onKernelRequest(RequestEvent $event)
{
if (!$event->isMasterRequest()) { return; }
$request = $event->getRequest();
$request->headers->set('api', "true");
return;
}
  • 路线
/* @Route(
*     "/user/info/",
*     name="get_user_info",
*     methods={"GET"},
*     condition="request.headers.get('api')"
* )
  • 错误
Path almost matches, but Condition "request.headers.get('api')" does not evaluate to "true"

路由器侦听器在您的侦听器之前被调用。

路由器 [https://github.com/symfony/http-kernel/blob/master/EventListener/RouterListener.php#L158](侦听器的优先级为 32(,其中侦听器的优先级为 0(默认值(。

如果将侦听器设置为具有比路由器侦听器更高的优先级,则它应该可以工作。

使用 YAML 的示例

services:
AppEventListenerYourListener:
tags:
-
name: kernel.event_listener
event: kernel.request
priority: 40

相关内容

  • 没有找到相关文章

最新更新