我在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; }
}
如何根据模型更改数据库?
提前致谢。
答案 0 :(得分:0)
如果您使用了代码,但对于那些不会更改的模型有额外的数据库配置,该怎么办?您发布的功能不会更改此附加数据库配置。在那些您不想更改的模型中,添加行
var $useDbConfig = 'static';
或者数据库配置的名称不会改变。然后那些做了改变,你使用默认配置离开。
答案 1 :(得分:0)
写入您的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 ';
.......... .......... .........