我在CakePhp 1.2中有一个应用程序,它依赖于域,有些模型必须对数据库进行彻底的更改。
所以我需要找到一个简单的方法:
database.php上的此函数仅根据域更改数据库,但不依赖于模型:
public function __construct(){
if (strpos(env('HTTP_HOST'), 'site_one') !== false) {
// use site_one database config
$this->default = $this->site_one;
} elseif (strpos(env('HTTP_HOST'), 'site_two') !== false) {
// use site_two database config
$this->default = $this->site_two; }
}如何根据模型更改数据库?
提前谢谢。
发布于 2013-08-22 20:49:28
如果您使用了您的代码,但是对那些没有改变的模型有了额外的数据库配置,那该怎么办?这个附加的数据库配置不会被您发布的函数更改。在不想更改的模型中,添加行
var $useDbConfig = 'static'; 或者不管数据库配置的名称是什么,都不会改变。然后,那些做改变,您离开使用默认的配置。
发布于 2013-08-23 05:32:52
在您的database.php中写入
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'first-database-name',
'prefix' => '',
);
var $otherdatabase = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'other-database-name',
'prefix' => '',
);在模型中
class Modelname extends AppModel {
var $name = 'Modelname';
var $useTable = 'tablename from other-database';
var $useDbConfig = 'otherdatabase ';
.......... .......... .........https://stackoverflow.com/questions/18384581
复制相似问题