Yii2. Как сделать откат добавленых данных?

У меня идут конструкции if
в которых выполняется добавление записи в конкретную таблицу бд в зависимости от выполнения условий.
Подскажите как сделать откат добавленых данных если во вложенных условиях при добавлении произошла ошибка?
  • Вопрос задан
  • 2394 просмотра
Решения вопроса 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Ну, начал бы с того, что упростил сам код (если много конструкций if).
Но одно с решений - использовать try/catch, а перед этим - делать транзакцию через Yii::$app->db->beginTransaction();
Если возникла ошибка - throw new MyException(); и в блоке catch - Yii::$app->db->rollBack();
Если все в порядке - в конце try добавляете Yii::$app->db->commit();

Вот, посмотрите в документации, там есть похожий пример кода www.yiiframework.com/doc-2.0/yii-db-connection.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@PiloTeZ
...
Почитайте о транзакциях в Yii. Просто оборачиваете в транзакцию и делаете откат при надобности.
www.yiiframework.com/doc-2.0/guide-db-dao.html#per...
Ответ написан
Комментировать
asf
@asf Автор вопроса
всем спасибо. сделал так:
$transaction = Yii::$app->db->beginTransaction();
try {
    ...
    $transaction->commit();
} catch (\Exception $e) {
    $transaction->rollBack();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы