這種情況很少見,但出于某種原因,我需要一個外部的 try catch 來達(dá)到目的。所以我無法控制個別交易。所以我只有一個外部 catch 語句。catch(Exception $e) { DB::rollback(); Log:error($e->getMessage());}但是,如果在任何事務(wù)尚未啟動之前出現(xiàn)錯誤,會發(fā)生什么?;貪L是否會造成意外損壞?
2 回答

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
您可以致電DB::transactionLevel()獲取計數(shù):
catch(Exception $e) {
if (0 < DB::transactionLevel()) {
DB::rollback();
}
Log:error($e->getMessage());
}
參考:Illuminate\Database\ConnectionInterface | Laravel API

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊
ROLLBACK
適用于“事務(wù)”,而不是“表”。一個事務(wù)中可能涉及多個表,甚至可能還沒有涉及到表。
ROLLBACK
準(zhǔn)備做任何需要的事情,甚至包括“什么都不做”。不用擔(dān)心。
- 2 回答
- 0 關(guān)注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消