Я пытаюсь настроить отдельную базу данных для особого набора пользователей, которые будут получать доступ к моему сайту через модуль Yii, но я не могу понять, как правильно настроить конфигурацию.
Вот соответствующие файлы моего модуля heirarchy.
<code>/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
В соответствии с инструкциями здесь , я обновил свой main.config, добавив определение базы данных для конкретного модуля.
'modules'=>array(
'special'=>array(
'db'=>array(
'connectionString'=>'mysql:dbname=specialdatabase',
'username'=>'special',
'password'=>'special',
),
),
),
У меня также естьобновил мой модуль для поддержки определения базы данных, добавив public $db
в SpecialModule.php, и я создал активную запись для конкретного модуля, которая использует определение базы данных.
<code>class SpecialActiveRecord extends CActiveRecord
{
public function getDbConnection()
{
$db = Yii::app()->controller->module->db;
return Yii::createComponent($db);
}
}
Где у меня проблемы, это в модели счета.Мое основное веб-приложение также реализует модель учетных записей, и трассировка стека показывает, что модуль получает доступ ко всем файлам моего модуля через идентификатор пользователя (/protected/modules/special/components/UserIdentity.php
).Однако на модель учетной записи, которая используется для авторизации, ссылаются на уровне сайта (/protected/models/Account.php
).
Есть ли какие-либо идеи относительно правильного способа реализации аутентификации конкретного модуля с использованием базы данных конкретного модуля?