0

当我想添加一些自定义标头(在我的情况下为|| )时,我有函数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"
4

1 回答 1

0

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

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

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

使用 YAML 的示例

services:
    App\EventListener\YourListener:
        tags:
            -
                name: kernel.event_listener
                event: kernel.request
                priority: 40
于 2020-02-10T11:29:49.477 回答