В моем примере я создаю новую запись в DB. Я должен быть в состоянии отказ, и новая запись должна была исчезнуть, не так ли? < /P>
Код: Выделить всё
try{
DB::beginTransaction();
$oNewMap = $oMap->replicate();
$oNewMap->name = "[test] " . $oNewMap->name;
$oNewMap->save(); // works
DB::rollBack(); / /record still in db
}
catch(\Exception $e){
DB::rollBack();
/* Transaction failed. */
}
Кстати, все физические таблицы созданы в InnoDB.
[ОТРЕДАКТИРОВАНО: чтобы упростить проблему до простого сохранения и отката, не выполнять два сохранения, если второе сохранение нарушает ограничение FK.]
Подробнее здесь: https://stackoverflow.com/questions/513 ... cking-save
Мобильная версия