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

}

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

我是否马上想到了?或者这是一个误会?

解决方法:

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

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

上一篇:mysql导入数据失败:mysql max_allowed_packet 设置过小


下一篇:php – Laravel删除可能存在错误关系的多态关系