可以在关联关系中指定连接。比如在HasOneThrough关系中使用$through属性和$connection属性来分别指定中间表和目标模型所在的连接。示例代码如下:
class User extends Model
{
    public function phone()
    {
        return $this->hasOneThrough(
            Phone::class, // 目标模型
            UserPhone::class, // 中间表模型
            'user_id', // 中间表中关联当前模型的外键名
            'id', // 目标模型在中间表中对应的外键名
            'id', // 当前模型对应的主键名
            'phone_id' // 目标模型对应的主键名
        )->using(Connection::class); // 分别使用不同的连接来连接中间表和目标模型
    }
}
class UserPhone extends Model
{
    protected $connection = 'database2'; // 指定中间表所在的连接
}
class Phone extends Model
{
    protected $connection = 'database3'; // 指定目标模型所在的连接
}
                
            下一篇:不同粒度的两个表如何连接?