Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
catch
, после rollback
, вызывается перехваченное исключение throw $e
. В этом случае до вьюва дело не дойдет.а. Считаем кол-во, которое мы планируем вставить.
б. Блокируем таблицу регистров.
в. Считаем остаток в таблице регистров агрегатным запросом.
г. Складываем результат с планируемой суммой.
д. Валидируем итоговую сумму.
е. Снимаем блокировку.
а. Производим запись в таблицу регистров.
б. Блокируем таблицу регистров.
в. Считаем остаток в таблице регистров агрегатным запросом.
г. Валидируем итоговую сумму.
д. Снимаем блокировку.
$transaction = $model->getDbConnection()->beginTransaction();
$cnt = count($this->_models);
for ($i = $cnt - 1; $i >= 0; $i--)
$this->_models[$i]->restoreState();
public function beginTransaction()
{
Yii::trace('Starting transaction','system.db.CDbConnection');
$this->setActive(true);
$this->getPdoInstance()->beginTransaction();
return $this->_transaction = new DbTransaction($this);
}
ActiveRecord и откат транзакций в Yii