Php Laravel-捕获时删除创建的对象

Php Laravel-捕获时删除创建的对象,php,laravel,eloquent,Php,Laravel,Eloquent,因此,我提交了一个包含3个组件的表单,用户->公司->分公司 现在,如果我在任何子对象中发现错误,我将无法删除父记录,并且当用户尝试重新提交表单时,他将无法使用相同的详细信息,因为它们已经注册 我的问题是: 我可以删除在catch{}中try{}中创建的对象吗? 如果没有,您建议采用什么做法来处理此类情况 提前谢谢 您可以在该场景中使用事务 假设您有多个create/update/delete,如果其中一个失败了,您希望它撤销其他的,那么事务就来了 DB::transaction(functio

因此,我提交了一个包含3个组件的表单,用户->公司->分公司

现在,如果我在任何子对象中发现错误,我将无法删除父记录,并且当用户尝试重新提交表单时,他将无法使用相同的详细信息,因为它们已经注册

我的问题是:

我可以删除在catch{}中try{}中创建的对象吗?

如果没有,您建议采用什么做法来处理此类情况


提前谢谢

您可以在该场景中使用事务

假设您有多个create/update/delete,如果其中一个失败了,您希望它撤销其他的,那么事务就来了

DB::transaction(function () {
    User::create([...]);
    Company::create([...]);
    Branch::create([...]);
});
因此,如果上述任何一条语句失败,其他语句将回滚

您可以在文档中详细阅读。

你是个传奇人物!非常感谢。