2016-07-25 38 views
4

我有這些多態性關係:Laravel的回滾事務是否支持多態關係?

staff: 
id - integer 
name - string 

orders: 
id - integer 
price - integer 

photos: 
id - integer 
path - string 
imageable_id - integer 
imageable_type - string 

並在控制器:

public function example() { 

    \DB::beginTransaction(); 

    try { 

      $staff = Staff::findOrFail(1); 

      $row = $staff->photos()->create([ 'path' => 1 ]); 

      $row->path = 2; 
      $row->save(); 

      abort(445); 

    } catch(\Exception $e) { 

     \DB::rollback() 
    } 

} 

正如預期的那樣,當前行必須從照片表中刪除,但它仍然存在與路徑= 2

我是否馬上想到?或者這是一個誤會?

+0

哪裏是多態關係發佈你的模型,你也可以使用'DB :: transaction'&pass作爲自動開始事務和回滾的關閉函數,你將不必處理它 –

回答

1

如果它不回滾事務,則表有一種可能性,即您的表具有MyISAM作爲引擎,因爲MyISAM表不支持回滾。

因此仔細檢查表格的引擎是否已正確設置爲InnoDB

+0

謝謝,問題解決了! – pemi