我有这些多态关系:
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
我是否马上想到?或者这是误导?
答案 0 :(得分:1)
如果它没有回滚事务,那么有一种可能是你的表有MyISAM
作为引擎,因为MyISAM表不支持回滚。
仔细检查表的引擎是否正确设置为InnoDB
。