如何从 Yii2 中的模型获取当前模块对象

How to get current module object from model in Yii2

我有模块 ticket.

模块 class 具有 属性 UserClassName(字符串)。

在这个模块中,我有一个名为 Dialog 的模型。

在此模型中,我想访问模块 属性 UserClassName

如何从我的模型中获取模块对象Dialog

P.S。从控制器我接下来可以做:$this->module.

您可以使用 className() 获取 class 名称。

$yourModule = yourPath\YourModule::className();   

或者要获取模块 ID,您可以使用:

Yii::$app->controller->module->id; 

我找到了解决方案(我也需要同样的解决方案)。获取模块对象——非常简单:

\Yii::$app->getModule('moduleName')->propertyOrMethod;

我们在yii2中可以识别模块、控制器和action方法如下
Yii::$app->controller->module->id;(获取模块 ID)
Yii::$app->controller->id;(获取控制器 ID)
Yii::$app->controller->action->id;(用于获取控制器操作 ID)

$module = MyModuleClass::getInstance();

getInstance() 方法将 return 当前请求的模块实例 class。如果未请求该模块,该方法将为 return null。请注意,您不想手动创建模块的新实例 class,因为它与 Yii 为响应请求而创建的实例不同。