使用ActiveRecord和DAO进行更新时一起处理事务

时间:2014-08-04 10:57:56

标签: yii

我知道当我们在交易期间采用Active Record更新时,我们应该使用

$trans = $model->dbConnection->beginTransaction();

当我们在交易期间采用DAO更新时,我们应该使用

$trans = Yii::app()->db->beginTransaction();

但是当我们在事务中通过ActiveRecord和DAO进行更新时如何开始交易?

到目前为止,我一直在使用

$trans = Yii::app()->db->beginTransaction();

混合情况。

任何人都可以在这里指导我吗?

1 个答案:

答案 0 :(得分:0)

通常,模型dbConnectionYii::app()->db。因此,您可以使用Yii::app()->db->beginTransaction();,这应该适用于活动记录和DAO。 如果您在活动记录和DAO中有不同的连接,它将无法工作。但这是正常行为,与yii无关,因为事务总是在连接上起作用。

你可以为...使用两个具有不同连接的DAO,但由于它们具有不同的连接,因此您无法使用这两种事务。