And*_*ira 0 php laravel eloquent
我具有以下关系:一个学生与一个人具有“一对一”的关系。一个人与Address具有“多对多”关系。
我要保留数据:首先创建人,在创建地址后,再创建学生。
但是,如果在任何这些表的持久化过程中发生任何错误,我都希望回滚转换。例如:如果我保存了“人”和“地址”,而“学生”失败了,我想回滚所有内容。
如何用口才来处理呢?
谢谢。
Laravel提供了多种简单的方法来处理这种情况。
DB::transaction(function () {
//all your codes
});
Run Code Online (Sandbox Code Playgroud)
从laravel文档:
要在数据库事务中运行一组操作,可以在数据库外观上使用事务方法。如果一个异常被抛出交易闭幕之内,交易将自动回滚。如果关闭成功执行,交易将自动提交。您无需担心使用事务方法时手动回滚或提交。
另外,如果您想手动进行操作,则可以使用
DB::beginTransaction();
//your codes
DB::commit();
Run Code Online (Sandbox Code Playgroud)
要了解有关交易的更多信息,请在此处阅读正式文件