如何从多个数据库中获取数据。
例子-
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'), );
}在Controller中,当我使用此查询时,会得到一个错误
$data = $this->User->find('all', array('conditions' => array('Country.status' => 1)));
$this->set('data', $data);错误: SQLSTATE42S22:列未找到:'where‘子句中的1054个未知列'Country.status’
发布于 2015-11-05 16:58:46
您不能开箱即用,因为如果您在Config/database.php中配置了两个数据库,它们将处于不同的连接中。
您可以做的是在php中进行两个分离的查找并连接数组数据,或者,如果您确实需要这样做,并且数据库位于同一台服务器上,则可以进行自定义查询:
$db = $this->User->getDataSource();
$data = $db->fetchAll('SELECT * from db_1.users User LEFT JOIN db2.countries Country');https://stackoverflow.com/questions/32449250
复制相似问题