Laravel的回滚事务是否支持多态关系?

时间:2016-07-25 07:49:08

标签: mysql laravel laravel-5 transactions polymorphism

我有这些多态关系:

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()
   }

}

正如预期的那样,必须从照片表中删除当前行,但它仍然存在于path = 2

我是否马上想到?或者这是误导?

1 个答案:

答案 0 :(得分:1)

如果它没有回滚事务,那么有一种可能是你的表有MyISAM作为引擎,因为MyISAM表不支持回滚。

仔细检查表的引擎是否正确设置为InnoDB