0
我有一個CakePHP 3.4.6 Web應用程序。由於它使用遺留(不是在Cake的約定中編寫的)數據庫表,我們選擇手動編寫所有SQL查詢,而不是嘗試設置Table
和Entity
類。我意識到有些人會不同意這一點,但那不是問題的關鍵。CakePHP 3 - 使用多個數據庫連接*無ORM *
我有3個數據庫:app_db
,users_db
,extra_db
。
我在配置每一個連接config/app.php
使得:
'Datasources' => [
'default' => [], // 'app_db' credentials
'users_db' => [], // 'users_db' credentials
'extra_db' => [], // 'extra_db' credentials
];
我有位於src/Model/MyModel.php
一個自定義的模型文件。它的一個例子被用來做(app_db
)工作原理是這樣的數據庫一個查詢:
namespace App\Model;
use Cake\Datasource\ConnectionManager;
class MyModel
{
protected $connection;
public function __construct()
{
$this->connection = ConnectionManager::get('default');
}
public function getData()
{
$sql = ''; // some SQL query
$stmt = $this->connection->prepare($sql);
$stmt->execute();
return $stmt->fetchAll('assoc');
}
}
這工作,因爲它會映射到app_db
爲default
連接。
但是,我現在想運行一個查詢,它需要從app_db
獲取數據,並且使用users_db
的數據連接JOIN。
如何在模型中配置它以便SQL與其他數據庫通信?