我正在创建一个身份验证模块来处理用户登录/注销网站。
我想保持路径简单:
但是,对于应用程序/模块中的某些函数,在某种父类下设置两条路由对我来说是有意义的:
'routes' => array(
'auth' => array(
'type' => 'Literal',
'options' => array(
'route' => '',
),
'may_terminate' => true,
'child_routes' => array(
'login' => array(
'type' => 'Literal',
'options' => array(
'route' => '/login',
'defaults' => array(
'controller' => 'Base\Controller\Authentication',
'action' => 'login',
),
),
'may_terminate' => true,
),
'logout' => array(
'type' => 'Literal',
'options' => array(
'route' => '/logout',
'defaults' => array(
'controller' => 'Base\Controller\Authentication',
'action' => 'logout',
),
),
'may_terminate' => true,
),
),
),
问题是 - 在父母中没有任何路由,我无法在任一子路由上获得匹配(/login
和/logout
返回404并出现路由错误。)
如果我在父母中设置路线,例如/auth
,那么网址只会匹配为/auth/login
和/auth/logout
。
我不希望父母干扰其他模块中的路由 - 例如," home" '/'
的路线已经在不同的模块中定义,我不想替换或修改它。
关于我在互联网上发现的与我尝试的内容类似的唯一事情是resolved bug report from 2012。
有没有办法定义一个可以在ZF2配置中保存可路由子节点的非路由父节点?
答案 0 :(得分:0)
'routes' => array(
'auth' => array(
'type' => 'Literal',
'options' => array(
'route' => '/',
),
'may_terminate' => true,
'child_routes' => array(
'login' => array(
'type' => 'Literal',
'options' => array(
'route' => 'login',
'defaults' => array(
'controller' => 'Base\Controller\Authentication',
'action' => 'login',
),
),
'may_terminate' => true,
),
'logout' => array(
'type' => 'Literal',
'options' => array(
'route' => 'logout',
'defaults' => array(
'controller' => 'Base\Controller\Authentication',
'action' => 'logout',
),
),
'may_terminate' => true,
),
),
),