我尝试更新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的数量并在使用更新后?
答案 0 :(得分: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'),
);
答案 1 :(得分: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