假设你已经在 DI
容器里注册了俩 db services
,如下:
<?php
// 主库
$di->setShared('dbWrite', function() use ($config) {
return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => $config->w_database->host,
"username" => $config->w_database->username,
"password" => $config->w_database->password,
"dbname" => $config->w_database->name
));
});
// 从库
$di->setShared('dbRead', function() use ($config) {
return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => $config->r_database->host,
"username" => $config->r_database->username,
"password" => $config->r_database->password,
"dbname" => $config->r_database->name
));
});
然后创建一个父 Model
:
<?php
class BaseModel extends \Phalcon\Mvc\Model{
public function initialize() {
$this->setWriteConnectionService('dbWrite');
$this->setReadConnectionService('dbRead');
}
}
在子 Model
中直接继承即可:
<?php
class User extends BaseModel {
//code here
}