CakePHP使用多个数据库进行模型

是否有可能某些模型在一个数据库中,而另一个模型在另一个数据库中(使用相同的连接)?

我有多个只读表,我希望在我的系统的多个安装之间共享.其他表需要按安装.例如,假设用户是共享表,而帖子是按安装的.

在一个模式中(我们称之为“共享”)我们有用户表,而另一个模式(“mycake”)是帖子.

我已经能够通过创建指向共享数据库的新数据库连接从其他数据库获取用户模型读取(尽管这两个数据库位于同一主机上,并且都可以使用相同的登录详细信息访问).

class User extends AppModel {
    var $useDBConfig = 'sharedConnection';
}

问题是什么时候加入posts表.它不会将模式名称添加到表名称中,因此无法找到帖子.

// what it does
SELECT * FROM users User INNER JOIN posts Post ...

// what I'd like it to do:
SELECT * FROM shared.users User INNER JOIN mycake.posts Post ...

基本上,有没有办法为模型分配一个完全限定的表名,并强制它在所有查询中使用它?设置var $useTable =’shared.users’;没有帮助……

最佳答案
This site有办法做到这一点,但它有点hacky.

点赞