Так у меня есть мой 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',
);
Тогда у меня есть некоторый 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);
(...)
Model1 использует $default
и Model2 использует $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 в обеих конфигурациях – Pbal