读写分离

注册读写链接配置信息

首先,我们需要按照 安装 注册 读 / 写 两个链接的信息

主要代码大概如下

DbManager::getInstance()->addConnection($con, 'read');
DbManager::getInstance()->addConnection($con2, 'write');

指定使用链接

有两种方式可以使用 可以根据自己的需求选择

主要利用AbstractModel提供的connection()方法

function connection(string $name, bool $isTemp = false)

第二个参数需要传入为true,表示临时使用,否则该认定为固定使用
建议只在临时使用时设置该方式,如果要固定使用则从Model类文件中定义。

Model继承定义

class Test extends AbstractModel{
    /** 这里因为不是使用默认的配置链接名 所以需要指定 */
    protected $connectionName = 'write';

    /** get 方法使用读链接 */
    public function get($where = null, bool $returnAsArray)
    {
        $this->connection('read', true);
        return parent::get($where, $returnAsArray);
    } 
}

外部使用

Test::create()->connection('read',true)->all();