我有一组活动记录,并希望以这种方式通过循环更改其中的某些字段:
$error = false;
foreach ($items as $item) {
$item->is_paid = self::PENDING;
$error = $error || !$item->save();
}
return $error;
我想要做的是更改is_paid
所有这些项目的属性。如果 on 失败,则回滚其他。如何使用事务来解决这个问题?
我有一组活动记录,并希望以这种方式通过循环更改其中的某些字段:
$error = false;
foreach ($items as $item) {
$item->is_paid = self::PENDING;
$error = $error || !$item->save();
}
return $error;
我想要做的是更改is_paid
所有这些项目的属性。如果 on 失败,则回滚其他。如何使用事务来解决这个问题?
通过这里的简要介绍,我能够在 yii 中找到事务管理,如下所示应该适合您:
$transaction = Yii::app()->db->beginTransaction();
try {
foreach ($items as $item) {
$item->is_paid = self::PENDING;
$item->save();
}
$transaction->commit();
// actions to do on success (redirect, alert, etc.)
} catch (Exception $e) {
$transaction->rollBack();
// other actions to perform on fail (redirect, alert, etc.)
}