我正在创建一个bundle,如果request是Ajax请求,它可以将fooAction重命名为fooAjaxAction.正如那个问题的答案所说,我必须扩展控制器解析器类.ResourceNotFoundException
如果我更改config.yml中的controller_resolver.class,我有一个.但如果我不这样做,我没有任何错误(但没有覆盖,所以这不是我想要的)
我的问题是:如何注册我的新控制器解析器并使用它?我是对的 ?错了吗?
这就是我所做的:
您可以在packagist中找到我的Bundle进行测试并通过以下方式下载:
composer require "/prefix-bundle":"dev-dev"
在AppKernel.php中激活它:
配置
# App/Config/config.yml parameters: controller_resolver.class: PrefixBundle\Component\Controller\ControllerResolver所以这是我的自定义控制器.
我假设这个控制器没有做任何事情,我将来会添加逻辑.
getArguments
方法中缺少返回(由于我在执行其他答案时遗漏了它),这意味着控制器解析器实际上没有获得任何要解析的参数.
public function getArguments(Request $request, $controller) { // Should have the return.. return parent::getArguments($request, $controller); }