我有一些代码,并try 了两种方式.它没有按预期工作,也没有回滚数据
错误生成示例在GIT中:https://github.com/Namvarii/laravel-db-transaction-error
\DB::beginTransaction();
try {
$order = Order::create([
// data
]);
$order->notes()->create([
// data and cause a fail
]);
// No morph map defined for model [App\Models\Order].
$order->transaction()->create([
// data
]);
} catch (\Exception $e) {
\DB::rollBack();
return "error";
}
\DB::commit();
return "success";
和
\DB::transaction(function() use ($offer, $request) {
$buyer = auth()->user();
$order = Order::create([
// data
]);
$order->notes()->create([
// data
]);
// throw error, "No morph map defined for model [App\Models\Order]" because not alias is defined.
$order->transaction()->create([
// data
]);
});
return "success";
在这两个示例中,出现了变形别名错误,请求失败,并显示消息No morph map defined for model [App\Models\Order]
,但我想知道为什么Order::create([/* data */]);
没有回滚并存储在数据库中.
update: Default laravel DB engine is null and my DB using MyIsam. 和 problem is that. thanks for answer @P.K.Tharindu