我想切换到辅助数据库来测试控制器中的特定功能。我在网上遇到的所有解决方案都说明了我应该使用的解决方案
ConnectionManager::alias('test', 'default');
嗯,我这样做了,但这对我来说似乎没什么用。
我写了以下几行来测试数据库切换是否成功
$stores = TableRegistry::get('Stores')->find('list')->toArray();
debug($stores);
ConnectionManager::alias('test', 'default');
$stores = TableRegistry::get('Stores')->find('list')->toArray();
debug($stores);
exit;
但是调试给出了完全相同数据的两倍,而测试数据库上的stores表有其他数据。所以数据库交换机并没有真正起作用。
任何人都知道我在这里做错了什么?
谢谢!
答案 0 :(得分:2)
$connection= ConnectionManager::get('test');
$result= $connection->execute('SELECT * FROM stores WHERE ...')->fetchAll('assoc');
die(debug($result));
https://book.cakephp.org/3.0/en/orm/database-basics.html
编辑:
$stores = TableRegistry::get('Stores')->find('list')->toArray();
TableRegistry::clear();
debug($stores);
ConnectionManager::alias('test', 'default');
$stores = TableRegistry::get('Stores')->find('list')->toArray();
debug($stores);
exit;