如何在 Yii2 中将变量从模块传递到控制器?
How to pass variable from Module to Controller in Yii2?
我正在使用 Yii2 构建 restful 无状态 API...到目前为止一切顺利。现在我在菜鸟问题上失败了。
我已经决定制作 API 应用程序(Yii 首选)并将 API 作为一个模块。所以我的结构是:
- modules
-- v1
--- components
--- controllers
--- models
v1文件夹里面当然有Module.php。在这里我进行身份验证:
$behaviors['authenticator'] = [
'class' => HttpBasicAuth::className(),
'auth' => function($username, $password) {
... get user's data from DB ...
[HERE]
}
];
在 [HERE]
点,我将用户 ID 存储在 public 变量中。
到目前为止一切顺利...
因此,当我调用 v1/abc/index
abc 控制器加载到该控制器内部时,我想访问存储在 [HERE]
点的用户 ID。有什么想法吗?
你试过了吗
$v1Module = Yii::app()->getModule('v1');
然后就
echo $v1Module->yourPublicVariable;
要从控制器访问模块,您应该简单地使用$this->module
。
从一个角度来看:$this->context->module
。
此处无需使用getModule()
。
阅读更多:http://www.yiiframework.com/doc-2.0/yii-base-controller.html#$module-detail
PS:要访问其 controllers/views 之外的模块,您可以使用 :
Yii::app()->getModule('module');
我正在使用 Yii2 构建 restful 无状态 API...到目前为止一切顺利。现在我在菜鸟问题上失败了。
我已经决定制作 API 应用程序(Yii 首选)并将 API 作为一个模块。所以我的结构是:
- modules
-- v1
--- components
--- controllers
--- models
v1文件夹里面当然有Module.php。在这里我进行身份验证:
$behaviors['authenticator'] = [
'class' => HttpBasicAuth::className(),
'auth' => function($username, $password) {
... get user's data from DB ...
[HERE]
}
];
在 [HERE]
点,我将用户 ID 存储在 public 变量中。
到目前为止一切顺利...
因此,当我调用 v1/abc/index
abc 控制器加载到该控制器内部时,我想访问存储在 [HERE]
点的用户 ID。有什么想法吗?
你试过了吗
$v1Module = Yii::app()->getModule('v1');
然后就
echo $v1Module->yourPublicVariable;
要从控制器访问模块,您应该简单地使用$this->module
。
从一个角度来看:$this->context->module
。
此处无需使用getModule()
。
阅读更多:http://www.yiiframework.com/doc-2.0/yii-base-controller.html#$module-detail
PS:要访问其 controllers/views 之外的模块,您可以使用 :
Yii::app()->getModule('module');