Ausgabe
Überprüfen Sie zuerst alle Modelle, ob sie gespeichert werden können oder nicht. Speichern Sie dann.
Ich habe versucht, Daten aus der Abfrage zu speichern. Ich habe 3 Abfragen:
$message_header->save();
$save_receive_info->save_receive_info_id = $message_header->id;
$information_receive->save();
$information_chargeline->save_receive_info_details_id = $information_receive->id;
$maklumat_chargeline->save();
Also, basierend auf dieser Abfrage, speichert es zuerst $message_header, dann wenn save_receive_info, aber wenn Receive_info beim Speichern einen Fehler hat, was kann ich tun?
Ich meine, ich möchte prüfen, ob alle Abfragen ausführbar sind oder nicht, und dann speichern. Ich habe ein Problem damit, weil andere Abfragen basierend auf einer anderen ID gespeichert werden
bitte helfen. und Entschuldigung für mein gebrochenes Englisch.
Lösung
Sie können den Try- und Catch-Block mit DB-Transaktionen verwenden.
use Illuminate\Support\Facades\DB;
DB::beginTransaction();
try {
// your code logic before save
$message_header->save();
$save_receive_info->save_receive_info_id = $message_header->id;
$information_receive->save();
$information_chargeline->save_receive_info_details_id = $information_receive->id;
$maklumat_chargeline->save();
DB::commit();
// all good
} catch (\Exception $e) {
DB::rollback();
// something went wrong
}
Beantwortet von – NIKUNJ KOTHIYA
Antwort geprüft von – Timothy Miller (FixError Admin)