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

时间:2016-07-03 16:33:29

标签: php yii2 yii2-advanced-app

我有模块ticket

模块类有pro UserClassName(字符串)。

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

在此模型中,我希望能够访问模块属性UserClassName

如何从模型Dialog获取模块对象?

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

4 个答案:

答案 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为响应请求而创建的实例不同。