在Routes Zend Framework 3中设置模块名称,控制器名称和操作名称吗?

时间:2019-03-08 11:24:52

标签: zend-framework zend-framework3

我是Zend 3的新手。我有多个模块,但我不知道如何路由不同的模块控制器操作。

'route' => '/[:module][/]dashboard[/][:action][/:id]',

以上路线在zend 2.4中运行良好。但我无法在zend 3中找到解决方案

1 个答案:

答案 0 :(得分:0)

在ZF3中,每个模块都应具有自己的名称空间。因此,如果在不同的模块中有多个DashboardController,则每个模块都必须在每个module.config.php中定义一条路由,例如:

 'modulenameDashboard' => [
                'type' => 'segment',
                'options' => [
                    'route' => '/modulename/dashboard[/:action][/:id][/]',
                    'defaults' => [
                        'controller' => \Modname\Controller\DashboardController::class,
                        'action' => 'index',
                    ]
                ]
            ],

您也可以在Module :: getConfig()中生成此路由 另外,如果只有一个DashboardController,则无需在路由中指定模块,只需指向特定的控制器类即可。

 'dashboard' => [
                'type' => 'segment',
                'options' => [
                    'route' => '/dashboard[/:action][/:id][/]',
                    'defaults' => [
                        'controller' => Modname\Controller\DashboardController::class,
                        'action' => 'index',
                    ]
                ]
            ],