Php 如何在ZF2中删除路由?

Php 如何在ZF2中删除路由?,php,routing,zend-framework2,Php,Routing,Zend Framework2,我已将以下模块安装到ZF2应用程序中:、和。虽然我的问题比较笼统,但我只是想弄清楚我想做什么 zfcadmin-路由是/admin。zfcuser-路由是/user。ZfcUserlist模块随附zfcuser的子路由,命名为ZfcUserlist,并指向/user/list 我想通过/admin/user调用用户列表,而不是/user/list。这当然没有问题,我只是为zfcadmin注册了一个子路由 现在我想删除模块附带的用户列表的默认路由。所以我的问题是:如何在ZF2中注销/删除某个路由

我已将以下模块安装到ZF2应用程序中:、和。虽然我的问题比较笼统,但我只是想弄清楚我想做什么

zfcadmin
-路由是
/admin
zfcuser
-路由是
/user
。ZfcUserlist模块随附
zfcuser
的子路由,命名为
ZfcUserlist
,并指向
/user/list

我想通过
/admin/user
调用用户列表,而不是
/user/list
。这当然没有问题,我只是为
zfcadmin
注册了一个子路由

现在我想删除模块附带的用户列表的默认路由。所以我的问题是:如何在ZF2中注销/删除某个路由

为了澄清问题,我有以下途径:

/admin
/admin/user   <- I added this one
/user/list    <- This comes shipped with the ZfcUserlist-module. I want to remove it
/admin

/admin/user要实现您想要的功能,您需要在
Module.php
中使用它:

namespace Foo;

use Zend\ModuleManager\ModuleEvent;
use Zend\ModuleManager\ModuleManager;

class Module
{
    public function init(ModuleManager $moduleManager)
    {
        $events = $moduleManager->getEventManager();

        // Registering a listener at default priority, 1, which will trigger
        // after the ConfigListener merges config.
        $events->attach(ModuleEvent::EVENT_MERGE_CONFIG, array($this, 'onMergeConfig'));
    }

    public function onMergeConfig(ModuleEvent $e)
    {
        $configListener = $e->getConfigListener();
        $config         = $configListener->getMergedConfig(false);

        // Modify the configuration; here, we'll remove a specific key:
        if (isset($config['router']['routes']['your_route'])) {
            unset($config['router']['routes']['your_route']);
        }

        // Pass the changed configuration back to the listener:
        $configListener->setMergedConfig($config);
    }
}
这只是一个例子。您需要将
yout_route
更改为表示
/user/list
的数组部分


可能重复->您是否已在ZfcUserlist中搜索字符串
列表
?他们可能有一个设置列表的配置文件。如果你发现了,我想你可以覆盖路线的名称。另一个选项是配置ZfcUserlist模块,给它一个路由前缀。这样的东西可能存在。+我链接的答案可能不清楚,但你在找这个->@AndreschSerj是的,我当然能找到字符串。我也可以覆盖路由,但是我想完全删除它@克里斯普:你的第二个答案很有帮助。我认为这样的事情是可能的。我走这边。但是,在配置文件中是否有这样做的方法?例如,通过将路由设置为
NULL
?这将是easier@faileN当您将合并配置作为一个整体来看时,假设一个null值意味着应该删除该键不是很可靠。密钥可能是必需的,空值可能对某些配置规范有效。我认为有文档记录的解决方案是最好的解决方法。