在 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
块中发生异常,将回滚其中的所有更改。
我正在尝试修改我的一个控制器中的多个模型 (Laravel 5),因此我从一个非常大的表单中收到了我需要的所有信息,然后在我的数据库中找到模型,修改它们最后保存它们以保留更改。
但是,假设我正在保存 5 个不同的模型,一个接一个,当系统试图保存第 3 个模型时(例如),出现问题并且进程结束。我怎样才能恢复以前的更改,所以我不保存部分更改?
如有任何想法,我们将不胜感激。谢谢。
你会为此使用交易。
$model1 = new Foo;
$model2 = new Bar;
DB::transaction(function() use($model1, $model2) {
$model1->save();
$model2->save();
}
如果 DB::transaction
块中发生异常,将回滚其中的所有更改。