首页 > 解决方案 > Laravel Eloquent:在两个不同的数据库中保持与模型的所有交互同步

问题描述

我正在开发一个标准的 Laravel 项目(使用单个 MySQL 数据库)。

现在我只需要将我的一个表与另一个远程数据库保持同步。因此,该特定表中的每个更改:创建更新删除等都应该实时传播/复制到远程表。

在询问之前我已经用谷歌搜索过,但除了明显的方法外,我还没有在Laravel中找到一种聪明的方法,这意味着在两个数据库连接上对那个模型/表进行每个数据库事务。

顺便说一句,我已经看到了connectionEloquent ORM 的受保护属性,它为特定模型设置了默认数据库连接,但我正在寻找类似在该属性中具有值数组的东西。connection

到目前为止没有运气。有什么想法吗?提前致谢。

标签: phplaraveleloquentdatabase-connection

解决方案


如果您在 eloquent 模型上进行所有查询,那么您可以利用 eloquent 事件。

在您的事件侦听器/观察者中,您可以克隆模型并更改克隆模型上的连接,以便您可以在第二个数据库上执行查询。


推荐阅读