Frage CakePHP Wie man Datenbankverbindung ändert


Ich habe 2 Controller, ContentController für den allgemeinen Benutzer und ManageController für den Administrator. Ich muss die Verbindung von Standard zu Admin ändern, und ich habe diesen Code in meiner Datenbank.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',
    );
}

Vielen Dank


5
2017-10-28 15:08


Ursprung


Antworten:


In Ihrem Modell würden Sie also das useDbConfig-Attribut verwenden:

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

Verwenden Sie in Ihrem Controller einfach:

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

Das ist alles.


10
2017-10-28 16:20



ich würde ... benutzen Model::setDataSource() anstatt nur die Datenbankkonfiguration var. Dies liegt daran, dass andere mögliche Änderungen beim Ändern der Datenquelle auftreten:

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

6
2017-10-29 14:05