我正在使用带有两个数据源的CakePHP 1.3:
master
default
如何更改整个功能的数据源,即从该功能的default
更改为master
。
如果我使用这个
$this->{Model}->setDataSource('master');
它仅针对该模型进行更改。
有没有一般的方法???
答案 0 :(得分:2)
行。尝试做这样的事情。我在较新版本的蛋糕中试过它并且它起作用了。
你的app模型中的有一个功能
public function getDataSource(){
$dataSource = Configure::read('currentDataSource');
if($dataSource && $dataSource !== $this->useDbConfig){
$this->setDataSource($dataSource);
}
return parent::getDataSource();
}
然后在您的控制器中,根据需要将数据源写入configure中。
Configure::write('currentDataSource', 'yourDbsource');
然后致电您的任何型号。
别忘了从bootstrap.php指定默认值。