2012-10-28 64 views
5

Tôi có 2 bộ điều khiển, ContentController cho người dùng chung và ManageController dành cho quản trị viên. Tôi cần phải thay đổi kết nối từ mặc định để quản trị và tôi có mã này trong database.php tôiCakePHP Cách thay đổi kết nối cơ sở dữ liệu

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', 
    ); 
} 

Cảm ơn bạn

Trả lời

10

Vì vậy, bên trong mẫu của bạn, bạn sẽ sử dụng thuộc tính useDbConfig:

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

Bên trong điều khiển của bạn, chỉ cần sử dụng:

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

Thats tất cả.

6

Tôi sẽ sử dụng Model::setDataSource() thay vì chỉ thiết lập cấu hình cơ sở dữ liệu var. Điều này là do có các thay đổi có thể có khác đi kèm với việc thay đổi nguồn dữ liệu:

$this->Model->setDataSource('admin'); 
Các vấn đề liên quan