为了创建一个表来支持权限我需要知道我的应用程序的模块(以及每个的控制器和动作),当然我可以使用
Yii::$app->modules
但是它只返回已加载的模块,我想在backend
中创建权限表,这样我就可以收到公共和backend
模块(并且可以)但不是frontend
个模块(这就是问题所在。)
其他方法应该是ModuleName::getInstance();
,但我之前需要ID
,我想要的是扫描所有现有模块,backend
和frontend
。
欢迎任何方法或建议。感谢。
答案 0 :(得分:1)
如果您的应用程序可以访问所有文件,您可以轻松地从其他应用程序的配置中获取模块列表。
我假设你正在使用“高级”应用程序模板。
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../../../frontend/config/main.php'),
require(__DIR__ . '/../../../frontend/config/main-local.php'),
require(__DIR__ . '/../../../backend/config/main.php'),
require(__DIR__ . '/../../../backend/config/main-local.php')
);
$modules = array_keys($config['modules']);
路径可能需要一些修正。此外,您可以注册指向根目录的别名并使用它。
在/web/index.php
中使用相同的方法来实例化当前应用程序。