yii\db\Connection::transaction PHP Method

transaction() public method

Executes callback provided in a transaction.
public transaction ( callable $callback, string | null $isolationLevel = null ) : mixed
$callback callable a valid PHP callback that performs the job. Accepts connection instance as parameter.
$isolationLevel string | null The isolation level to use for this transaction. See [[Transaction::begin()]] for details.
return mixed result of callback function
    public function transaction(callable $callback, $isolationLevel = null)
    {
        $transaction = $this->beginTransaction($isolationLevel);
        $level = $transaction->level;
        try {
            $result = call_user_func($callback, $this);
            if ($transaction->isActive && $transaction->level === $level) {
                $transaction->commit();
            }
        } catch (\Exception $e) {
            if ($transaction->isActive && $transaction->level === $level) {
                $transaction->rollBack();
            }
            throw $e;
        }
        return $result;
    }