0

嗨,我正在尝试将两个模块设置为一起工作。一个负责首页(前端模块),另一个负责管理页面(管理模块)。

我已经正常配置了两个模块的路由,当我分别测试它们时一切正常。一旦我尝试让它们一起工作,我就会遇到一些路由问题。

例如,当我尝试访问链接时:localhost.com/en/admin/index/add 框架使用前端模块路由配置而不是管理员。

所以基本上它试图去: 模块 - “Front”,Lang - “en”,Controller - “Admin”,Action - “Index”

但我需要的是: 模块 - “Admin”,Lang - “en”,Controller - “Index”,Action - “add” Param - “none”

所以需要告诉前端配置路由不要访问其中包含管理部分的链接,但我无法让它工作。这是我的前端模块路由:

'application' => array(
            'type'    => 'Segment',
            'options' => array(
                'route'    => '[/:lang][/:controller[/:action[/:id]]]',
                'constraints' => array(
                    //'controller' => '^((?!admin).)*[a-zA-Z][a-zA-Z0-9_-]*',
                    'lang'       => '[a-zA-Z]{2}',
                    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'         => '[0-9]+',
                ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    //'lang'          => 'en',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'default' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '[/:lang][/:controller[/:action[/:id]]]',
                        'constraints' => array(
                            'lang'       => '[a-zA-Z]{2}',
                            'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'         => '[0-9]+',
                        ),
                        'defaults' => array(
                        ),
                    ),
                ),
            ),
        ),

和管理员路由代码:

'admin' => array(
            'type'    => 'Segment',
            'options' => array(
                'route'    => '/admin[/:lang][/:controller[/:action[/:id]]]',
                'constraints' => array(
                    //'controller' => '^((?!admin).)*[a-zA-Z][a-zA-Z0-9_-]*',
                    'lang' => '[a-zA-Z]{2}',
                    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Admin\Controller',
                    'lang'          => 'en',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),

            ),
            'may_terminate' => true,
            'child_routes' => array(
                'default' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '[/:lang][/:controller[/:action[/:id]]]',
                        'constraints' => array(
                            'lang' => '[a-zA-Z]{2}',
                            'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'         => '[0-9]+',
                        ),
                        'defaults' => array(
                        ),
                    ),
                ),
            ),

        ),
4

0 回答 0