デフォルトとは違うデータベースに切り替えて接続したいときのCake2とCake4の両方の書き方を見てみます。
前提として、config
ファイルに接続したいデータベース接続情報が存在するものとしています。
Cake2: データベース切り替え
※Cakephp2では app/Config/database.php
にDB接続設定が必要です。
class Hoge extends AppModel { public $useDbConfig = 'fuga_db'; }
Cakephp2では $useDbConfig
という名前のメンバ変数に別の接続名を指定することで切り替えることができました。
Cake4: データベース切り替え
※Cakephp4では config/app_local.php
にてDB接続設定が必要です。
<?php declare(strict_types=1); namespace App\Model\Table; use Cake\Datasource\ConnectionManager; use Cake\ORM\Table; class HogesTable extends Table { /** * 初期化 * * @param array $config * @return void */ public function initialize(array $config): void { parent::initialize($config); $this->setConnection(ConnectionManager::get('fugasDb')); } }
Cakephp4では config
ファイルの Datasources
に定義したDB接続先名を指定することでデータベースの切り替えが可能になります。