Я отправляю запрос, пытаясь сохранить несколько документов одновременно.
Вот мой код
DB::beginTransaction();
try {
foreach ($request->documents as $index => $documentInfo) {
// Check
if (// some statement) {
$documentExists = Document::where([
// some checks
])
->exists();
if ($documentExists) {
throw new \Exception("Error Processing Request", 1);
}
}
// Assign document properties
$document->save();
}
DB::commit();
} catch (\Exception $e) {
DB::rollBack();
if ($request->ajax()) {
return response()->json([
'success' => false,
'document' => $index,
'message' => '// message',
]);
}
return redirect()->back()->with('error', '// message');
}
Дело в том, что я проверяю каждый документ на его собственные уникальные значения,Если два документа с одинаковыми значениями пытаются сохранить, я хочу вернуть ошибку.Я попытался загрузить два документа с одинаковыми значениями, ошибка возвращается во втором документе, и транзакция должна завершиться неудачно, но первый документ сохраняется в базе данных.Я не хочу этого, если есть ошибка, я не хочу, чтобы какие-либо документы сохранялись в БД.