在 Laravel 5 中保存多个模型时如何防止错误

How to prevent errors when saving multiple models in Laravel 5

我正在尝试修改我的一个控制器中的多个模型 (Laravel 5),因此我从一个非常大的表单中收到了我需要的所有信息,然后在我的数据库中找到模型,修改它们最后保存它们以保留更改。

但是,假设我正在保存 5 个不同的模型,一个接一个,当系统试图保存第 3 个模型时(例如),出现问题并且进程结束。我怎样才能恢复以前的更改,所以我不保存部分更改?

如有任何想法,我们将不胜感激。谢谢。

你会为此使用交易。

$model1 = new Foo;
$model2 = new Bar;


DB::transaction(function() use($model1, $model2) {
  $model1->save();
  $model2->save();
}

如果 DB::transaction 块中发生异常,将回滚其中的所有更改。