如何在 Laravel 中使用不同的连接进行批量插入?

How Can I Make a Bulk insertion with Different Connection in Laravel?

我正在使用 Laravel 5.6 并尝试像这样插入大量数据

Model::insert($BulkOfData);

但我的问题是我想将这些数据与另一个连接静态插入到类似的东西

Model::setConnection('connection')->insert($BulkOfData);

我该怎么做

提前致谢。

setConnection 不是静态方法。您可以使用模型的实例:

(new Model)->setConnection('connection')->insert(...);

像 insert 这样的方法可以静态调用,因为它们没有在模型上定义,所以它回退到 __callStatic 在查询构建器上调用 insert() 的逻辑。

您可以通过在顶部添加 $connection 变量来设置模型中的连接,例如:

protected $connection = 'connection';

然后你可以使用简单的插入:

Model::insert($BulkOfData);

否则,如果您想即时更改连接,您可以使用 on() 方法,例如:

Model::on('connection')->insert($BulkOfData);