gpt4 book ai didi

transactions - 与 Eloquent Laravel 5 的交易

转载 作者:行者123 更新时间:2023-12-04 05:23:24 25 4
gpt4 key购买 nike

我正在为 MySQL 使用 MyISAM,我想在这里使用事务,这是我的代码:

DB::transaction(function () {
$project = Project::find($id);
$project->users()->detach();
$project->delete();
});
这段代码成功执行,但我不确定交易是否有效......我该如何测试它?

最佳答案

确实只有两种方法可以做到这一点,都不是特别好,因为 DB::transaction不报告错误。

  • 如果事务失败,则在闭包中放置一个 try/catch 块并在 catch 块中设置一个外部变量。
  • 使用 DB::beginTransaction 进行手动交易并回滚/提交,再次使用异常处理程序,如下例所示:

  •     DB::beginTransaction();
    try {
    $project = Project::find($id);
    $project->users()->detach();
    $project->delete();
    DB::commit();
    $success = true;
    } catch (\Exception $e) {
    $success = false;
    DB::rollBack();
    }

    if ($success) {
    // the transaction worked carry on...
    }

    关于transactions - 与 Eloquent Laravel 5 的交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35228105/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com