如何在 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);
我正在使用 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);