Заключить delete() в транзакцию из поведения

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Заключить delete() в транзакцию из поведения

Сообщение maleks »

Приветствую.

Пишу поведение которое для Главной Модели при ее удалении должно поудалять логически зависимые модели из той же таблицы.
Вроде ж логично, запускается удаление Главной Модели

Код: Выделить всё

$mainModel->delete()
И в EVENT_AFTER_DELETE поведения должно поудалять зависимые модели.
Т.е.
1) первый $mainModel->delete() должен обернуться в транзакцию,
2) а то что в поведении будут вызываться $relatedModel->delete() тут новые транзакции стартовать не надо.

Но насчет даже 1) проблемы. Т.к. это поведение, предполагаемое быть общим, распространяемом в расширении, к AR классу доступа нет, delete() переопределить не могу. Да и transactions() тоже.
Думаете есть возможность стартануть все это в одной транзакции?
Yii2 universal module sceleton - for basic and advanced templates
Ответить