在 ZF2 中,如何将路由添加为来自另一个模块的路由的子节点?我假设有一种方法可以在某处挂钩事件?
例如,模块 A 为/foo
. 在模块 B 中,我想/foo/bar
通过创建一个/bar
路由作为 'foo' 的子级来添加一个路由。
在 ZF2 中,如何将路由添加为来自另一个模块的路由的子节点?我假设有一种方法可以在某处挂钩事件?
例如,模块 A 为/foo
. 在模块 B 中,我想/foo/bar
通过创建一个/bar
路由作为 'foo' 的子级来添加一个路由。
我打算解释一下,但也许举个例子会更好
模块A
提供/parent
一条具有子路线的路线/parent/foo
// routes
'router' => array(
'routes' => array(
'parent' => array(
'type' => 'Literal',
'may_terminate' => true,
'options' => array(
'route' => '/parent',
'defaults' => array(
'__NAMESPACE__' => __NAMESPACE__ . '\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'child_routes' => array(
'foo' => array(
'type' => 'Literal',
'options' => array(
'route' => '/foo'
'defaults' => array(
'__NAMESPACE__' => 'ModuleA\Controller',
'controller' => 'Foo',
'action' => 'index',
),
),
),
),
),
),
),
模块 B
添加一个子路由/parent/bar
// routes
'router' => array(
'routes' => array(
'parent' => array(
'child_routes' => array(
'bar' => array(
'type' => 'Literal',
'options' => array(
'route' => '/bar'
'defaults' => array(
'__NAMESPACE__' => 'ModuleB\Controller',
'controller' => 'Bar',
'action' => 'index',
),
),
),
),
),
),
),
当您的应用程序加载模块配置时,ModuleB 中的路由定义将与 ModuleA 合并,您最终会得到 /foo 和 /bar 作为 /parent 的子级,它们都指向它们各自的模块控制器。