首页 > 解决方案 > Laravel:将模型/行从一个连接复制到另一个

问题描述

我想将一个雄辩的模型从一个连接复制到另一个连接。

到目前为止,我这样做的方式是:

$users = User::on('connection1')->where('tenant', 'foo')->get();
User::on('connection2')->insert($users->toArray());

这在大多数情况下都有效。但在某些情况下,这不起作用。例如:

将某些行简单地复制到另一个连接的可靠方法是什么?

标签: laravellaravel-5eloquentlaravel-5.7

解决方案


我想我找到了 $hidden 属性和覆盖 toArray 方法的解决方案

 $users = User::on('connection1')->where('tenant', 'foo')->get();

foreach ($users as $user) {
            $usersArray[] = $user->getAttributes();
        }
User::on('connection2')->insert($usersArray);

如果您使用的是 mySql,我建议使用批量插入:

https://www.geeksengine.com/database/data-manipulation/bulk-insert.php


推荐阅读