首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Cakephp 1.2中仅在某些模型中的动态数据库

问更改Cakephp 1.2中仅在某些模型中的动态数据库
EN

Stack Overflow用户
提问于 2013-08-22 15:19:56
回答 2查看 449关注 0票数 0

我在CakePhp 1.2中有一个应用程序,它依赖于域,有些模型必须对数据库进行彻底的更改。

所以我需要找到一个简单的方法:

  1. 检查域名。
  2. 在数据库所需的某些模型上设置$useDbConfig。

database.php上的此函数仅根据域更改数据库,但不依赖于模型:

代码语言:javascript
复制
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; } 

}

如何根据模型更改数据库?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-22 20:49:28

如果您使用了您的代码,但是对那些没有改变的模型有了额外的数据库配置,那该怎么办?这个附加的数据库配置不会被您发布的函数更改。在不想更改的模型中,添加行

代码语言:javascript
复制
var $useDbConfig = 'static'; 

或者不管数据库配置的名称是什么,都不会改变。然后,那些做改变,您离开使用默认的配置。

票数 0
EN

Stack Overflow用户

发布于 2013-08-23 05:32:52

在您的database.php中写入

代码语言:javascript
复制
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' => '',
);

在模型中

代码语言:javascript
复制
class Modelname extends AppModel {

    var $name = 'Modelname';
    var $useTable = 'tablename from other-database';  
    var $useDbConfig = 'otherdatabase ';
    .......... .......... .........
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18384581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档