0

我阅读了关于“一个模型/控制器的两个数据库”的各种问答,我发现了许多针对特定情况的解决方案(例如http://goo.gl/EP8BB),但我想知道是否必须将一个应用程序连接到两个数据库这既困难又费时。

我的意思是,我有两个数据库(相同的结构,不同的数据),但我只想使用一个 CakePHP 1.3 应用程序。我将如何选择连接到哪个数据库?很简单,查看 SERVER_NAME。

我的 database.php 文件中有两个数据库。为什么不能在模型中设置类似的东西?

**MyModel.php**
-----------
class MyModel extends AppModel {
    if ($_SERVER['SERVER_NAME' == "app1") {
        var $useDbConfig = "database1";
    } else if ($_SERVER['SERVER_NAME' == "app1") {  
        var $useDbConfig = "database2";
    }
}

这个“快速解决方案”是幼稚和愚蠢的吗?它看起来很容易处理(部分原因是我还不能让它工作),而不是编写无穷无尽的组件和设置数据源等。

4

1 回答 1

2

鉴于您将 ifelse 代码放在模型的 __construct 方法中(只是为了防止一些令人讨厌的错误填满您的屏幕) - 不,它既不幼稚也不愚蠢。

我使用了 sth - 更多扩展但 - 基本上类似于在开发和生产配置之间切换。

如果相应的配置开关更复杂和/或在多个应用程序中使用,那么一个组件在我看来是有意义的。

于 2012-11-23T13:30:06.240 回答