私はこの答えのように、URLごとに一意のデータベースを持つアプリケーションを持っています:CakePHP-URLに基づくデータベース構成
これは正常に機能しますが、各データベースでいくつかのコンソールコマンドを実行する必要もあります。パラメータを使用したいので、次のようなものを使用します。
cake consoleCommand databaseConfig
理想的には、これにより、アプリケーション全体でデータベースが「databaseConfig」に設定され、「consoleCommand」が実行されます。私が遭遇している問題は、consoleCommandが実行される前にDATABASE_CONFIGクラスがロードされて実行されることです。その時点で、コンソールで$ this-> Model-> setDataSpourceのようなものを使用しようとしましたが、その時点でもModelはコンソールで使用できないようです。
構成設定を設定し、モデルにアクセスする前にそれを調べることをいじくりまわしましたが、__construct()では機能しないため、以前のすべての*メソッドに関連付ける必要がありました。これは私には少し厄介なようです:
class AppModel extends Model
{{
private function _before() {
$conn = Configure::read('dbConnection');
if(!empty($conn))
$this->setDataSource($conn);
}
public function beforeValidate($options = array()) {
$this->_before();
parent::beforeValidate();
}
public function beforeDelete($bool = true) {
$this->_before();
parent::beforeDelete($bool);
}
public function beforeFind($queryData) {
$this->_before();
parent::beforeFind($queryData);
}
public function beforeSave($options=array()) {
$this->before();
parent::beforeSave($options);
}
}
これについての洞察をいただければ幸いです。