如何从 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 为响应请求而创建的实例不同。
我有模块 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 为响应请求而创建的实例不同。