2
我們沿着就好在Laravel 5.1得到一些雄辯代碼:Laravel 5.2升級將導致SQL鎖定錯誤,不尊重數據庫事務
DB::transaction(function() {
// Eloquent model saved here
$bla = new Bla();
$bla->blabla = 'bla';
$bla->save()
});
律協洋洋灑灑模型有一個模型觀察者類檢查創建,更新和刪除,然後寫入日誌表。在Laravel 5.1這個工作得十分完美,但在升級到5.2後,似乎忘了這是在一個事務,因爲它實際上試圖寫日誌表引發此錯誤:
General error: 1205 Lock wait timeout exceeded; try restarting transaction
提醒你這也失敗在5.2我們什麼時候嘗試使用模型事件。事件/觀察者試圖立即寫入日誌表,而不是事務提交時。有沒有辦法讓觀察員/事件類在Laravel 5.2中的事務中正常工作,還是應該恢復到Laravel 5.1?我目前的理論是,由於觀察者從事務中移除了一個層次,所以新代碼中的某些內容引入了一個不再尊重此層級事務的錯誤。
謝謝大阿爾。這確實是個問題。 –