【发布时间】:2012-01-14 19:22:22
【问题描述】:
我正在尝试为将通过 Yii 模块访问我的网站的特殊用户集建立一个单独的数据库,但我似乎无法正确配置。
这是我的模块层次结构的相关文件。
/protected/modules/special
/protected/modules/special/SpecialModule.php
/protected/modules/special/models/SpecialActiveRecord.php
/protected/modules/special/models/Account.php
/protected/modules/special/components/UserIdentity.php
根据here 的说明,我已更新我的 main.config 以包含特定于模块的数据库定义。
'modules'=>array(
'special'=>array(
'db'=>array(
'connectionString'=>'mysql:dbname=specialdatabase',
'username'=>'special',
'password'=>'special',
),
),
),
我还更新了我的模块以通过将public $db 添加到 SpecialModule.php 来支持数据库定义,并且我创建了一个使用数据库定义的模块特定活动记录。
class SpecialActiveRecord extends CActiveRecord
{
public function getDbConnection()
{
$db = Yii::app()->controller->module->db;
return Yii::createComponent($db);
}
}
我遇到问题的地方是帐户模型。我的主要 Web 应用程序还实现了一个帐户模型,堆栈跟踪显示该模块正在通过用户身份 (/protected/modules/special/components/UserIdentity.php) 访问我的所有模块特定文件。但是,用于授权的帐户模型是在站点级别引用的 (/protected/models/Account.php)。
关于使用模块特定数据库实现模块特定身份验证的正确方法有什么想法吗?
【问题讨论】:
标签: database module yii access-control