我正在使用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。
到目前为止一直很好......
因此,当我在控制器内部调用v1/abc/index
abc控制器时,我想访问存储在点[HERE]
的用户ID。有什么想法吗?
答案 0 :(得分:3)
要从控制器访问模块,您只需使用$this->module
。
从视角来看:$this->context->module
。
此处无需使用getModule()
。
了解详情:http://www.yiiframework.com/doc-2.0/yii-base-controller.html#$module-detail
PS:要访问其控制器/视图之外的模块,您可以使用:
Yii::app()->getModule('module');
答案 1 :(得分:2)
你试过吗
$v1Module = Yii::app()->getModule('v1');
然后简单地
echo $v1Module->yourPublicVariable;