我有这些多态关系:
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.