我有模块ticket
。
模块类有pro UserClassName
(字符串)。
在这个模块中,我有一个名为Dialog
的模型。
在此模型中,我希望能够访问模块属性UserClassName
。
如何从模型Dialog
获取模块对象?
P.S。从控制器我可以做下一步:$this->module
。
答案 0 :(得分:21)
您可以使用className()
获取班级名称。
$yourModule = yourPath\YourModule::className();
或者,要获取模块ID,您可以使用:
Yii::$app->controller->module->id;
答案 1 :(得分:0)
我找到了一个解决方案(我也需要同样的解决方案)。获取模块对象 - 非常简单:
\Yii::$app->getModule('moduleName')->propertyOrMethod;
答案 2 :(得分:0)
我们可以在yii2中识别模块,控制器和动作方法如下
Yii::$app->controller->module->id;
(用于获取模块ID)
Yii::$app->controller->id;
(获取控制器ID)
Yii::$app->controller->action->id;
(有关获取控制器操作ID)
答案 3 :(得分:0)
$module = MyModuleClass::getInstance();
getInstance()方法将返回当前请求的模块类实例。如果未请求模块,则该方法将返回null。请注意,您不想手动创建模块类的新实例,因为它与Yii为响应请求而创建的实例不同。