Php Phalcon db连接到同一主机上的多个数据库

Php Phalcon db连接到同一主机上的多个数据库,php,mysql,database-connection,phalcon,Php,Mysql,Database Connection,Phalcon,我最近开始使用Phalcon PHP框架,有一件事让我很困惑 如何将$di设置为在同一主机上使用多个数据库?例如,如何使此查询工作 SELECT * FROM DB1.TABLENAME_1 AS t1 LEFT OUTER JOIN DB2.TABLENAME_2 AS t2 ON t1.some_id = t2.other_id 我已经注册了到DB1的连接,并且加载了所有模型,可以轻松地访问任何模型中的数据,但是当我试图将一个db中的表与第二个db中的表连接起来时,我得到了一个错误:无法加

我最近开始使用Phalcon PHP框架,有一件事让我很困惑

如何将$di设置为在同一主机上使用多个数据库?例如,如何使此查询工作

SELECT * FROM
DB1.TABLENAME_1 AS t1
LEFT OUTER JOIN DB2.TABLENAME_2 AS t2 ON t1.some_id = t2.other_id
我已经注册了到DB1的连接,并且加载了所有模型,可以轻松地访问任何模型中的数据,但是当我试图将一个db中的表与第二个db中的表连接起来时,我得到了一个错误:无法加载属于DB2的模型“TABLENAME_2”

这是我的$di


您可以在模型中添加三行代码,例如,我有两个DB DB1,DB2,DB1是主DB,此配置在service.php中设置:

service.php: DB2是您想要使用的辅助数据库,它涉及两个表T1、T2。对于它的任何表,您都可以通过Phalcon devTools生成model.php T1.php、T2.php。因此,要使用此表中的代码,您应该添加三行代码,然后定义T1.php类:

T1.php这是您的模型:
连接的用户对这两个数据库都有读取权限吗?是的,我还创建了一个模型TABLENAME_2,Phalcon正在尝试将此模型映射为DB1而不是DB22。只需在DI中添加两个db连接,然后在您的模型中设置连接服务:我已经尝试过了,确实有效,但还有第二个问题,当我使用这种方法时,我可以通过Phalcon开发工具添加模型
$di->setShared('db', function () use ($config) {
    return new DbAdapter(array(
        'host' => $config->database->host,
        'username' => $config->database->username,
        'password' => $config->database->password,
        'dbname' => $config->database->dbname,
        'options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
        )
    ));
});
$di->set('db', function () use ($config) {
    return new DbAdapter(array(
        'host' => "localhost",
        'username' => "root",
        'password' => $config->database->password,
        'dbname' => "DB1",
        'charset' => "utf8"
    ));
});

//declare DB2 as well as:
$di->set('DB2', function () use ($config) {
    return new DbAdapter(array(
        'host' => "localhost",
        'username' => "root",
        'password' => $config->database->password,
        'dbname' => "DB1",
        'charset' => "utf8"
    ));
});
class Events extends \Phalcon\Mvc\Model
{

//you can connect to DB2 database
public function initialize()
{
    $this->setConnectionService('DB2');
} 
...