2016-09-06 16 views
2

我有一个带有数据库主从设置的Laravel 5.2项目。当运行类似Model::onWriteConnection()->with('relationship')->find($id)的东西时,只有find()查询针对写连接运行; with()查询仍然针对从站运行。对数据库写连接的雄辩的预加载关系

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

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

回答

1

试试这个:

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

看看Constraining Eager Loads

+0

聪明!我没有想到以这种方式使用急切的加载约束。但是,onWriteConnection()没有在QueryBuilder上定义;但useWritePdo()是,它似乎工作!谢谢! – quakes