0

http://docs.phalconphp.com/en/0.6.0/reference/odm.html

设置多个数据库¶

在 Phalcon 中,所有模型可以属于同一个数据库连接,也可以有一个单独的数据库连接。实际上,当 Phalcon\Mvc\Collection 需要连接到数据库时,它会请求应用程序服务容器中的“mongo”服务。您可以在初始化方法中覆盖此服务设置:

<?php

//This service returns a mongo database at 192.168.1.100
$di->set('mongo1', function() {
 $mongo = new Mongo("mongodb://scott:nekhen@192.168.1.100");
 return $mongo->selectDb("management");
});

//This service returns a mongo database at localhost
$di->set('mongo2', function() {
$mongo = new Mongo("mongodb://localhost");
return $mongo->selectDb("invoicing");
});

然后,在 Initialize 方法中,我们为模型定义连接服务:

<?php

class Robots extends \Phalcon\Mvc\Collection
{

    public function initialize()
    {
        $this->setConnectionService('management'); // here? 
    }

}
4

1 回答 1

0

你是对的。文档是错误的。正确的用法是使用setConnectionService.

http://docs.phalconphp.com/en/latest/reference/odm.html

<?php

// This service returns a mongo database at 192.168.1.100
$di->set(
    'mongo1', 
    function() 
    {
        $mongo = new Mongo("mongodb://scott:nekhen@192.168.1.100");
        return $mongo->selectDb("management");
    }
);

// This service returns a mongo database at localhost
$di->set(
    'mongo2', 
    function() 
    {
        $mongo = new Mongo("mongodb://localhost");
        return $mongo->selectDb("invoicing");
    }
);

然后,在 Initialize 方法中,我们为模型定义连接服务:

.. 代码块:: php

<?php

class Robots extends \Phalcon\Mvc\Collection
{
    public function initialize()
    {
        $this->setConnectionService('mongo1');
    }

}
于 2012-11-05T14:38:54.687 回答