Zend Framework 2中的通用模块路由

时间:2012-07-12 16:55:54

标签: zend-framework routing zend-framework2

我们将ZF2用于具有两个模块(前端和后端)的网站项目。我们希望为具有以下规范形式的这两个模块生成URL:

/module/controller/action

到目前为止,我们尝试了这个解决方案,但我们无法使其正常工作

'router' => array(
    'routes' => array(
        'application' => array(
            'type'    => 'Segment',
            'options' => array(
                'route' => '/[:module[/:controller[/:action]]]',
                'constraints' => array(
                    'module'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
                    'action'     => '[a-zA-Z][a-zA-Z0-9_-]*'
                ),
                'defaults' => array(
                    'module'     => 'Front',
                    'controller' => 'Front\Controller\Index',
                    'action'     => 'index'
                )
            )
        ),
    ),
),

我们希望URL看起来像/modulename/controllername,而不需要为每个模块创建类似于ZF1的旧默认路由的特定路由。是否可以这样做或者是否有特定于zf2的方法?

1 个答案:

答案 0 :(得分:2)

在新的ZF2 Beta5中,有一个新的侦听器Zend \ Mvc \ ModuleRouteListener,因此您必须在路径中添加 __ NAMESPACE __ 键,将命名空间添加到Controller之前,因此,您将拥有一个通用路由。