Yii2:从模块内部调用模块类的静态方法


Yii2: call static method of module class from within module

我创建了一个运行良好的模块。从模块内的控制器和视图中,我想访问我创建的名为t的模块的静态转换方法。根据Yii的文档,我应该能够使用Module::t()访问模块类(名为module)的静态方法,但只有在准备像'app'modules'commission'Module::t()这样的命名空间时,我才能使用它。

这是我错过的必须修改的配置问题吗?还是这是使用名称空间访问Module类的唯一方法?我在网上搜索过,但找不到类似的问题。

您可以尝试使用别名,并在配置参数别名中为模块定义别名:

'aliases' => [
    '@mymodule' => 'app'modules'commission'Module',
],

然后这样调用你的方法:

call_user_func([Yii::getAlias('@mymodule'), 't', $params]);

没有Module::t()那么优雅,但可以灵活地更改实现自定义t()方法

的模块类