Транзакции

Транзакции — серия SQL-запросов, которые должны выполниться. Если в одном из запросов происходит ошибка, отменяется вся транзакция, т.е. база данных приобретает вид до начала выполнения транзакции.

Транзакции полезны при совершении оплаты. Например, надо перевести 10 000 руб с одного пользователя другому. Код списания может выполниться, а в коде зачисления может случиться ошибка, и тогда пользователь просто потеряет 10 000 руб. В случае транзакции, при ошибки все операции отменятся.

Транзакции выполняются через метод DB::transaction().

use Illuminate\Support\Facades\DB;
// …

DB::transaction(function() {
    DB::table('users')->where(['id' => 5])->update(['balance' => 5000]);
    DB::table('users')->where(['id' => 12])->update(['balance' => 10000]);
});