I'm using Laravel 5.2.
I would like to know what are the differences between :
DB::beginTransaction()
andDB::transaction()
DB::commitTransction()
andDB::commit()
DB::rollbackTransction()
andDB::rollback()
Any helps would be appreciated.
I'm using Laravel 5.2.
I would like to know what are the differences between :
DB::beginTransaction()
and DB::transaction()
DB::commitTransction()
and DB::commit()
DB::rollbackTransction()
and DB::rollback()
Any helps would be appreciated.
DB::beginTransaction()
will only begin a transaction, while for DB::transaction()
you must pass a Closure function that will be executed inside a transaction.
So this:
DB::transaction(function() {
// Do something and save to the db...
});
is the same as this:
// Open a try/catch block
try {
// Begin a transaction
DB::beginTransaction();
// Do something and save to the db...
// Commit the transaction
DB::commit();
} catch (\Exception $e) {
// An error occured; cancel the transaction...
DB::rollback();
// and throw the error again.
throw $e;
}
As you can see, DB::transaction()
is a "helper" function to avoid writing code to catch errors, begin a transaction, commit the transaction, and optionally rollback (cancel the transaction) if an error occured.
If you have a more complex logic, or need an specific behaviour, you will manually build your transaction; if your logic is rather simple, DB::transaction()
is the way to go.
As for DB::commitTransaction()
and DB::rollbackTransaction()
, I can't find information.
It's a good practice to check the source code of the things you use, because you will learn how they are written, as well as how to write. Here's the file with the source for these methods.
DB::commitTransaction0
here laracasts.com/discuss/channels/eloquent/… –
Recension DB::commitTransaction()
** –
Hesitancy DB::commitTransaction()
has been renamed to DB::commit()
. –
Jaquesdalcroze From Laravel 6 to use Transactions must be use the following helper functions.
use Illuminate\Support\Facades\DB;
try {
// For Begin a transaction
DB::beginTransaction();
// Do something
// Commit the transaction
DB:: commit();
} catch (\Throwable $e) {
// An error occured
DB::rollback();
// and throw the error again.
throw $e;
}
if you use the DB::commitTransaction(); function, get error undefined function.
© 2022 - 2024 — McMap. All rights reserved.
DB::commitTransaction()
andDB::rollbackTransaction()
do not exist. – Unstrained