Wszyscy używamy DB::transaction()
do wielu zapytań wstawiania. Czy robiąc to, należy try...catch
umieścić w środku, czy owinąć? Czy w ogóle konieczne jest uwzględnienie, try...catch
kiedy transakcja automatycznie się nie powiedzie, jeśli coś pójdzie nie tak?
Przykładowe try...catch
opakowanie transakcji:
// try...catch
try {
// Transaction
$exception = DB::transaction(function() {
// Do your SQL here
});
if(is_null($exception)) {
return true;
} else {
throw new Exception;
}
}
catch(Exception $e) {
return false;
}
Wręcz przeciwnie, DB::transaction()
zawijanie próba ... haczyka:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
Lub po prostu transakcja bez próby ... złapania
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;