国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

有人能回答一下在用模型的時候如何使用事務(wù)嗎? 測試了好多次都不行

MrMarko

PHP版本:8.1.22
反復(fù)嘗試過無法使用事務(wù)
貼出代碼:

Db::beginTransaction();
try {
    User::where('id', 14)->update(['integral' => 1]);
    // Db::table('back_user_list')->where('id', 14)->update(['integral' => 1]);
    throw new \Exception('err');
    Db::commit();
} catch (\Exception $e) {
    Db::rollBack();
    return false;
}

當我使用user模型更新時,他無論如何都會更新數(shù)據(jù)
但是用Db插入的時候卻可以攔截,沒有更新數(shù)據(jù),這就很奇怪了,我在用laravel的時候這樣子寫是沒有問題的,有大神能說一下時啥問題嗎?

1208 2 2
2個回答

latin

應(yīng)該模型 User 和 Db用的不是同一個Mysql連接,所以不生效。

Db::connectin('User模型所用的鏈接')->beginTransaction();
這樣指定連接去執(zhí)行事務(wù),laravel實際上也要注意這個地方,只不過laravel一般配置一個數(shù)據(jù)庫連接,不用指定。

  • MrMarko 2023-09-22

    感謝回答 忘記發(fā)出來了,使用connection后 連db的update都可以插入了 所以不是指定的問題

  • MrMarko 2023-09-22

    在我發(fā)帖前已經(jīng)試過的了

  • MrMarko 2023-09-23

    你說的對 我在公用的base寫了 // protected $connection = 'plugin.api.mysql'; 這個沒有注釋掉導(dǎo)致的不生效

gddd


直接上圖,測試過沒問題,是數(shù)據(jù)庫鏈接問題,可以為Model創(chuàng)建一個Base類,Base類用$connection指定數(shù)據(jù)庫連接(就是你開啟事務(wù)的數(shù)據(jù)庫鏈接)

  • MrMarko 2023-09-23

    你說的對 我在公用的base寫了 // protected $connection = 'plugin.api.mysql'; 這個沒有注釋掉導(dǎo)致的不生效 本來應(yīng)該操作admin.mysql的 但是base的卻是指向了api,雖然是同一個數(shù)據(jù)庫配置,但是就導(dǎo)致了事務(wù)失效了,已經(jīng)注釋了,可以直接用,不需要指定配置了

年代過于久遠,無法發(fā)表回答
??