使用CakePHP的set()/ save()函数,如何根据现有值的增量保存值?

时间:2012-09-18 03:19:09

标签: mysql cakephp

我很高兴CakePHP的清理功能允许使用保存/设置模型功能安全插入。我目前需要保存现有模型数据的增量,并且无法确定所需的过程。

目前我的模型代码如下:

$this->save(array('Model.field', 'Model.field + 1'));

但是我注意到,正如预期的那样,这不会起作用,因为整个字符串都被转义,而不是相关字段的整数增量。非常感谢任何帮助。

我知道解决方法是首先查询有问题的行,然后在PHP中增加值,但我更愿意使用单独的MySQL /查询解决方案。

2 个答案:

答案 0 :(得分:2)

使用Model :: updateAll()。您可以在手册中找到示例。

答案 1 :(得分:1)

我这样做:

$this->id = 1;
$data = $this->read();
$this->saveField('field_name', $data['Model']['field_name'] + 1);

或者,您可以使用query();

$this->query('UPDATE Model.field_name = Model.field_name + 1 WHERE Model.id=1');