如何从多个数据库中获取数据。
示例 -
two database -> db_1 and db_2.
two tables -> users in db_1 database and countries in db_2
users table -> id , username, country_id, status
countries table -> id, name, status
和协会是 -
App::uses('AppModel', 'Model');
class User extends AppModel
{
var $name = 'User';
var $useDbConfig = 'bd_1';
var $belongsTo = array('Country'=>array('className'=>'Country'), );
}
$data = $this->User->find('all', array('conditions' => array('Country.status' => 1)));
$this->set('data', $data);
错误:SQLSTATE [42S22]:找不到列:1054未知列 ' Country.status'在' where子句
答案 0 :(得分:0)
您无法开箱即用,因为如果您在Config / database.php中配置了两个数据库,它们将处于不同的连接中。
你可以做的是制作两个独立的发现并在php中加入数组数据,或者,如果你真的需要这样做并且数据库在同一个服务器上,那就进行自定义查询:
$db = $this->User->getDataSource();
$data = $db->fetchAll('SELECT * from db_1.users User LEFT JOIN db2.countries Country');