Zfcuser路线有一条儿童路线

时间:2016-01-25 14:32:48

标签: zend-framework2 zfcuser

我正在开发一个ZF2项目,并使用ZfcUser来管理网站用户。 我只是想知道是否有可能有一条通往zfcuser路线的儿童路线? 类似的东西,在我的模块的配置中:

return [
        'router' =>
        [
            'routes' =>
            [
                'admin' =>
                [
                    'type'    => 'Segment',
                    'options' =>
                    [
                        'route'    => '/admin',
                        'defaults' =>
                        [
                            '__NAMESPACE__' => 'admin',
                            'controller'    => 'admin.index',
                            'action'        => 'index',
                        ],
                    ],
                    'may_terminate' => true,
                    'child_routes'  =>
                    [
                        'zfcuser' =>
                        [
                            'type' => 'Literal',
                            'options' =>
                            [
                                'route' => '/account',
                            ]
                        ],
                    ],
                ],

            ],
        ],
    ];

1 个答案:

答案 0 :(得分:0)

这是我最近尝试克服的一个问题,不是在使用ZfcUser,而是在开发我自己的模块时。有一些解决方案,但最合适的取决于您正在开发的应用程序类型。

最简单的解决方案是覆盖zfcuser路径路径并在其前面添加admin

return [
    'router' => [
        'routes' => [
            'zfcuser' => [
                'options' => [
                    'route' => '/admin/user',
                ],
            ],
        ],
    ],
];

如果您像我一样希望所有admin路线包含在一条路线下,那么您最好完全删除zfcuser路线并实施您自己的路线ZfcUser控制器。

namespace Application;

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

class Module
{
    public function init(ModuleManager $moduleManager)
    {
        $events = $moduleManager->getEventManager();
        $events->attach(ModuleEvent::EVENT_MERGE_CONFIG, array($this, 'onMergeConfig'));
    }

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

        if (isset($configuration['router']['routes']['zfcuser']))
        {
            unset($configuration['router']['routes']['zfcuser']);
        }

        $configListener->setMergedConfig($configuration);
    }
}