0

我尝试更新 num_of_gifts 而不选择使用 yii 活动记录和 CDbCriteria 这是我的代码:

$attributes = array('num_of_gifts' => 'num_of_gifts'+1);
$condition = 'bla bla';
$params = array(bla bla);
Gifts::model()->updateAll($attributes, $condition, $params);

我在 num_of_gifts 单元格中得到的都是“1”,是否可以将 1 增加到 num_of_gifts?或者我需要选择 num_of_gifts 的数量,然后使用更新?

4

2 回答 2

1

如果你只是更新计数器,你可以使用 Yii 的updateCounters方法。

全部更新示例:

Gifts::model()->updateCounters(array('num_of_gifts'=>1));

该方法采用条件来更新特定记录,但如果您不包含条件,它将更新所有记录。

[编辑]

如果要根据条件更新选定的记录,格式如下:

Gifts::model()->updateCounters(
        array('num_of_gifts'=>1),
        array('condition' => "param = :param"),
        array(':param' => 'paramvalue'),
    );
于 2013-01-05T21:20:08.967 回答
0

从 Yii 1.1.8 开始有更新计数器的简化方法:

Gifts::model()->saveCounters(array('num_of_gifts'=>1));

看:

http://www.yiiframework.com/wiki/282/using-counters-with-activerecord/ http://www.yiiframework.com/doc/api/1.1/CActiveRecord#saveCounters-detail

于 2013-08-30T15:47:26.677 回答