我目前正在创建一个包,如果请求是 Ajax 请求,它可以将 fooAction 重命名为 fooAjaxAction。
作为答案那个问题 https://stackoverflow.com/questions/24672349/edit-symfony-behavior-with-ajax-actions说,我必须扩展控制器解析器类。
我有一个ResourceNotFoundException
如果我更改 config.yml 中的controller_resolver.class。但如果我不这样做,我就没有任何错误(但没有覆盖,所以这不是我想要的)
我的问题是:如何注册我的新控制器解析器并使用它?我是对的 ?错误的 ?
这就是我所做的:
您可以在 packagist 中找到我的用于测试的捆绑包并通过以下方式下载:
composer require "/prefix-bundle":"dev-dev"
在 AppKernel.php 中激活它:
<?php
// AppKernel.php
new \PrefixBundle\PrefixBundle()
Config
# App/Config/config.yml
parameters:
controller_resolver.class: PrefixBundle\Component\Controller\ControllerResolver
这是我的自定义控制器。
<?php
namespace \PrefixBundle\Component\Controller;
use Symfony\Component\HttpKernel\ControllerControllerResolver as BaseControllerResolver;
use Symfony\Component\HttpFoundation\Request;
class ControllerResolver extends BaseControllerResolver
{
public function getArguments(Request $request, $controller)
{
parent::getArguments($request, $controller);
}
}
例如,我假设该控制器什么都不做,我将来会添加逻辑。
退货从getArguments
方法(由于我在执行其他答案时错过了它)意味着控制器解析器实际上没有获得任何要解析的参数。
public function getArguments(Request $request, $controller)
{
// Should have the return..
return parent::getArguments($request, $controller);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)