Laravel Eloquent Batch Saving

时间:2017-08-01 02:43:27

标签: laravel laravel-5.4

有没有办法如何使用eloquent保存整批文件? 例如,我有1000个要保存的项目,传统的方法是使用foreach并保存它。

我预见的是,如果在保存过程中互联网连接中断,剩下的尚未完成的项目将无法保存,是否有办法解决此问题?

我认为可行的是使用存储过程,但带宽会杀死我们。

1 个答案:

答案 0 :(得分:2)

您要找的是交易,请查看https://laravel.com/docs/5.4/database#database-transactions

  

您可以使用数据库外观上的事务方法在数据库事务中运行一组操作。如果在事务Closure中抛出异常,则事务将自动回滚。如果Closure成功执行,则事务将自动提交。

另一种方法是使用insert()函数一次创建数据。

DB::table('users')->insert([
  ['email' => 'taylor@example.com', 'votes' => 0],
  ['email' => 'dayle@example.com', 'votes' => 0]
]);