Cakephp如何更改数据库连接

时间:2012-10-28 15:08:17

标签: cakephp

我有2个控制器,一般用户的ContentController和管理员的ManageController。我需要将连接从默认更改为admin,我在database.php中有这个代码

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => '',
        'database' => 'ComputerScience',
        'prefix' => '',
        'encoding' => 'utf8',
    );

    public $admin = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'admin',
        'password' => '',
        'database' => 'ComputerScience',
        'prefix' => '',
        'encoding' => 'utf8',
    );
}

谢谢

2 个答案:

答案 0 :(得分:10)

因此,在Model中,您将使用useDbConfig属性:

class Example extends AppModel {
    public $useDbConfig = 'admin';
}

在您的控制器内部,只需使用:

$this->ModelName->useDbConfig = 'admin';

多数人。

答案 1 :(得分:6)

我会使用Model::setDataSource()而不是仅设置数据库配置var。这是因为更改数据源还有其他可能的更改:

$this->Model->setDataSource('admin');