laravel - 针对数据库写入连接的 Eloquent 预加载关系

标签 laravel laravel-5 database-replication

我有一个带有数据库主从设置的 Laravel 5.2 项目。运行诸如 Model::onWriteConnection()->with('relationship')->find($id) 之类的内容时,仅对 find() 查询运行写连接; with() 查询仍然针对从属运行。

此特定查询必须针对主连接运行,因为相关数据可能尚未复制到从属连接。

有没有办法强制 Eloquent 查询的所有部分针对写入连接运行?

最佳答案

试试这个:

Model::onWriteConnection()->with(['relationship'=>function($query){
   $query->useWritePdo();
}])->find($id)

Constraining Eager Loads

关于laravel - 针对数据库写入连接的 Eloquent 预加载关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39347718/

相关文章:

postgresql - 将 AWS RDS Postgresql 复制到本地 Postgresql

mysql - MySQL中主二进制日志和从二进制日志有什么区别?如何在两台服务器上实现相同的二进制日志?

php - 在带有种子的 laravel 8 中,我有这个问题目标类 [TableSeeder] 不存在

database - 处理涉及枢轴的范围的正确方法

php - Laravel Eloquent wherePivot 方法返回未找到列 'pivot'

mysql - Laravel DB 查询连接多个表并获取条件数据

php - 如何使用 orWhere 创建动态 where 子句 - Laravel 4

mysql - Laravel 无限滚动

php - 如何在插件域内安装 laravel

database - 复制如何在分布式数据库中工作