有没有办法如何使用eloquent保存整批文件? 例如,我有1000个要保存的项目,传统的方法是使用foreach并保存它。
我预见的是,如果在保存过程中互联网连接中断,剩下的尚未完成的项目将无法保存,是否有办法解决此问题?
我认为可行的是使用存储过程,但带宽会杀死我们。
答案 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]
]);