1

我们将 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的方法?

4

1 回答 1

2

在新的 ZF2 Beta5 中,有一个新的侦听器 Zend\Mvc\ModuleRouteListener,因此您必须在路由中添加一个 __NAMESPACE __这会将命名空间添加到控制器,因此,您将拥有一个通用路由.

于 2012-07-12T18:51:11.873 回答