是否有可能某些模型在一个数据库中而其他模型在另一个数据库中(使用相同的连接)?
我有许多只读表,我希望在我的系统的多个安装之间共享这些表。其他表需要按安装进行。举个例子,假设 users
是共享表,posts
是每个安装。
在一个模式(我们称之为“共享”)中,我们有 users
表,在另一个模式(“mycake”)中有 posts
。
通过创建指向共享数据库的新数据库连接,我已经能够从另一个数据库读取用户模型(尽管这两个数据库位于同一主机上,并且都可以使用相同的登录详细信息访问) .
class User extends AppModel {
var $useDBConfig = 'sharedConnection';
}
问题是何时需要连接到 posts
表。它不会将架构名称添加到表名称之前,因此无法找到 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。
关于php - CakePHP 为模型使用多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1788072/