【发布时间】:2014-07-01 11:56:17
【问题描述】:
我知道,how to use transactions in pure DAO 或 ActiveModel 中的事务在调用 $model->save() 之前启动并在任何异常时回滚。
但是如何使用事务,如果我可以访问的唯一代码位置(不管,为什么)是Yii event?
public function beforeDelete()
{
foreach($this->menuItems as $menuItem) $menuItem->delete();
return parent::beforeDelete();
}
如果我在那里启动事务,捕获可能的异常并回滚整个事务,那么只会回滚删除关系模型(此处:菜单项)。它不会阻止(回滚)删除主记录。
如果出现异常,通过在我自己的beforeDelete 中返回FALSE 来防止删除主记录,我需要在这里注意吗?或者我应该在 Yii 事件中完全避免交易?
【问题讨论】:
标签: yii transactions yii-events