我试图在我的控制器中修改几个模型(Laravel 5),所以我从一个非常大的表单中接收我需要的所有信息,然后在我的数据库中找到模型,修改它们,最后保存它们以保持更改。
但是,假设我保存了5种不同的模型,一个接一个,当系统试图保存第三种模式(例如)时,有些事情出错了,过程结束了。如何恢复以前的更改,以便不保存部分更改?
任何想法都将不胜感激。谢谢。
发布于 2015-06-24 19:43:28
你会用一笔交易来做这个。
$model1 = new Foo;
$model2 = new Bar;
DB::transaction(function() use($model1, $model2) {
$model1->save();
$model2->save();
}
如果在DB::transaction
块中发生异常,则将回滚其中的所有更改。
https://stackoverflow.com/questions/31035499
复制相似问题