Класс Phalcon\Mvc\Model\Transaction
реализует Phalcon\Mvc\Model\TransactionInterface
Транзакции — это защищённые блоки, где SQL-запросы становятся постоянными только в случае успешного выполнения всех запросов как одного атомного действия. Phalcon\Transaction предназначен для использования с Phalcon_Model_Base. Транзакции Phalcon должны создаваться с помощью Phalcon\Transaction\Manager.
try {
$manager = new Phalcon\Mvc\Model\Transaction\Manager();
$transaction = $manager->get();
$robot = new Robots();
$robot->setTransaction($transaction);
$robot->name = 'WALL·E';
$robot->created_at = date('Y-m-d');
if ($robot->save() == false) {
$transaction->rollback("Can't save robot");
}
$robotPart = new RobotParts();
$robotPart->setTransaction($transaction);
$robotPart->type = 'head';
if ($robotPart->save() == false) {
$transaction->rollback("Can't save robot part");
}
$transaction->commit();
} catch(Phalcon\Mvc\Model\Transaction\Failed $e) {
echo 'Failed, reason: ', $e->getMessage();
}
Методы
public __construct (Phalcon\DiInterface $dependencyInjector, [boolean $autoBegin], [string $service])
Конструктор Phalcon\Mvc\Model\Transaction
public setTransactionManager (Phalcon\Mvc\Model\Transaction\ManagerInterface $manager)
Устанавливает менеджер транзакций, связанный с транзакцией
public boolean begin ()
Начинает транзакцию
public boolean commit ()
Подтверждает транзакцию
public boolean rollback ([string $rollbackMessage], [Phalcon\Mvc\ModelInterface $rollbackRecord])
Откатывает транзакцию
public Phalcon\Db\AdapterInterface getConnection ()
Возвращает подключение, связанное с транзакцией
public setIsNewTransaction (boolean $isNew)
Устанавливает, является ли это повторно используемой транзакцией или новой
public setRollbackOnAbort (boolean $rollbackOnAbort)
Устанавливает флаг для отката при прерывании HTTP-соединения
public boolean isManaged ()
Проверяет, управляемая ли транзакция менеджером транзакций
public array getMessages ()
Возвращает сообщения валидации с последней попытки сохранения
public boolean isValid ()
Проверяет, находится ли внутреннее соединение в активной транзакции
public setRollbackedRecord (Phalcon\Mvc\ModelInterface $record)
Устанавливает объект, который генерирует действие отката
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/api/Phalcon_Mvc_Model_Transaction.html