我们将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的方法?
答案 0 :(得分:2)
在新的ZF2 Beta5中,有一个新的侦听器Zend \ Mvc \ ModuleRouteListener,因此您必须在路径中添加 __ NAMESPACE __ 键,将命名空间添加到Controller之前,因此,您将拥有一个通用路由。