Zf3:每个模块中的类似控制器

时间:2019-07-11 12:39:05

标签: php zend-framework zend-framework3

我的ZF2应用程序中有不同的模块,每个模块都包含一个控制器列表。现在在zf2中创建路由并使用服务定位器获取Entity Manager有所不同。现在在Zf3中,我们需要添加“别名”和“工厂”以使用那里的任何资源来为每个模块创建路由,即使在不同的模块中也无法为控制器添加相同的别名;

这是我的应用 / module.conf.php

 'controllers' => [
    'factories' => [
        Controller\IndexController::class => ServiceLocatorControllerFactory::class,
        Controller\UserController::class => ServiceLocatorControllerFactory::class,
    ],
    'aliases' =>  [
        'index'     =>  IndexController::class,
        'user'     =>  UserController::class,
    ]
],

和我的仪表板/ module.config.php

 "controllers" => [
    'factories' => [
        Controller\UserController::class            => ServiceLocatorControllerFactory::class,
        Controller\WidgetController::class          => ServiceLocatorControllerFactory::class,
    ],
    'aliases' =>  [
        "user"          => UserController::class,
        "widget"            => WidgetController::class,
    ]
],

现在,当我尝试访问 / application / user / index

它转到仪表板=> UserController => IndexAction

代替Application => UserController => IndexAction

我现在拥有的解决方案是为每个控制器手动创建路由,在我的情况下这确实很难,因为应用程序很大,控制器数量为100。另外,编写每条路线都是一项多余的任务。反正有解决问题的方法

1 个答案:

答案 0 :(得分:0)

由于未找到不同模块中类似模块的答案,因此我为每个模块中的每个控制器创建了单独的路由。这就是我写的路线

  

Application-> IndexController

grp     gname   max.score   length
group1  gene1   0.989003844   5
group2  gene1   0.988334014   3
group2  gene2   0.983461712   2
group3  gene3   0.982339339   4

我为应用程序中的每个控制器创建了一个