所以,我有我的database.php文件如下:CakePHP useDbConfig不起作用?
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'SOMEHOST',
'port' => 8889,
'login' => 'LOGIN',
'password' => 'PASSWORD',
'database' => 'DB1',
'prefix' => '',
'encoding' => 'utf8',
);
public $db2 = array(
'datasource' => 'Datasources.Freetds',
'persistent' => false,
'host' => 'SOMEHOST',
'port'=> 1433,
'login' => 'LOGIN',
'password' => 'PASSWORD',
'database' => 'DB2',
'prefix' => '',
'encoding' => 'utf8',
);
然後我有試圖「發現」在一個DB一些字段,以便它可以在其他數據庫等領域的交叉檢查一些shell代碼如下:
(...)
$qry = $this->Model1->find('all', array(
'fields' => array('Model1.id','Model1.field1'),
'conditions' => array(
'Model1.field2' => 'WAITING'),
'recursive' => -1));
$this->loadModel('Model2');
$num_reg=count($qry);
for ($loop=0; $loop<$num_reg;$loop++) {
$registro = $this->Model2->find("first", array(
'recursive' => -1,
'fields' => array ('Model2.field1', 'Model2.field2'),
'conditions' => array ('Model2.field1' => $qry[$loop]['Model1']['field1'])));
var_dump($registro);
(...)
型號1使用$default
和模型2使用$db2
。 Model2.php如下(摘錄):
public $useTable = 'Table';
public $primaryKey = 'key';
public $useDbConfig = "db2";
不幸的是,CakePHP的似乎並沒有被交換連接和/或數據塊,因爲我得到Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Model2.field1' in 'field list'
。
調試表明CakePHP在構建SQL語句(select ... from DEFAULT.MODEL2TABEL as MODEL2 ....
)時嘗試使用默認數據庫。
任何想法?
在此先感謝!
順便說一句,你可以看到'persistent'設置爲false在這兩個CONFIGS – Pbal 2014-12-01 19:44:03