gpt4 book ai didi

Symfony2 使用包 :controller:action notation 在 kernelControllerEvent 中设置 Controller

转载 作者:行者123 更新时间:2023-12-04 08:49:37 25 4
gpt4 key购买 nike

我正在尝试做类似以下问题的事情:

Trying to swap a controller using an event listener with Symfony2

但是,当我使用代码时(按照答案中的建议):

$event->setController('MyMainBundle:Manage:show');

我只是得到一个错误:

LogicException: The controller must be a callable (MyMainBundle:Manage:show given).

有没有办法在 setController 中使用 Bundle:Controller:Method 语法?或者我可以调用其他方法将其解析为“可调用”?

最佳答案

你应该给 $event->setController 的是一个可调用的。您提供的字符串表示可调用对象的逻辑路径。

您可以使用 symfony 的 ControllerResolver 解析此字符串。

你必须在你的监听器中注入(inject) controller_resolver 服务,然后像这样使用它:

$request = new Symfony\Component\HttpFoundation\Request();
$request->attributes->set('_controller', 'MyMainBundle:Manage:show'));
$event->setController($this->resolver->getController($request));

但您显然正在执行框架的工作。

关于Symfony2 使用包 :controller:action notation 在 kernelControllerEvent 中设置 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9256386/

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