可以在关联关系中指定连接。比如在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'; // 指定目标模型所在的连接
}
下一篇:不同粒度的两个表如何连接?