gpt4 book ai didi

php - Symfony2 : Getting Route in Page Load Event Listener

转载 作者:IT王子 更新时间:2023-10-29 00:08:54 24 4
gpt4 key购买 nike

如何在页面加载甚至监听器中获取路由?

我在 services.yml 中有以下代码:

    page_load_listener:
class: Acme\MainBundle\EventListener\PageLoadListener
arguments: [@security.context, @session]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController, priority: 64 }

在 PageLoadListener 类中我有相应的方法:

    public function onKernelController(FilterControllerEvent $event)
{

// Some code I need to execute that needs the route arguments

}

问题似乎是路由和参数不可用。我错过了什么?

我需要传递哪个事件来获取路由及其参数?

谢谢,

JB

最佳答案

所有内核事件扩展 KernelEvent ,这意味着您可以通过 $event->getRequest() 简单地访问 Request 对象。

public function onKernelController(FilterControllerEvent $event)
{
$request = $event->getRequest();

// Matched route
$_route = $request->attributes->get('_route');

// Matched controller
$_controller = $request->attributes->get('_controller');

// All route parameters including the `_controller`
$params = $request->attributes->get('_route_params');
}

如果您想获得普通的路由属性,只需过滤掉所有以“_”为前缀的元素即可。

根据您的具体用例选择合适的事件来监听。

关于php - Symfony2 : Getting Route in Page Load Event Listener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com