Я использую CakePHP 1.3 с двумя источниками данных:
master
default
Как я могу изменить источник данных для всей функции, т.е. default
в master
для этой функции.
Если я использую это
$this->{Model}->setDataSource('master');
это меняется только для этой модели.
Есть ли общий способ ???
ХОРОШО. Попробуйте сделать что-то вроде этого. Я попробовал это в более новой версии торта, и это сработало.
в модели вашего приложения есть функция
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.
Других решений пока нет …