我试图通过 Cake 的 save() 函数简单地执行以下操作。
UPDATE user SET value = value-1
不过好像只能设置。它不会理解我传递给它的任何递增或递减的内容,而且互联网上似乎没有人遇到过这个问题。 :P 即使在浏览基于 CakePHP 2.0 构建的完整软件时,我也发现 $this->query() 用于增量更新!如果我还没有要设置的值,我真的会这样更新吗?
(出现代码如下)
$data = array('id' => uid, 'value' => "Users.value = Users.value - 1");
$this->User->save($data);
最佳答案
CakePHP 数据库产生自增自减的代码如下:
$this->User->updateAll(array('value' => 'value - 1'), array('id' => uid));
Arun 的回答不正确;您必须将 - 1 放在引号内才能让 Cake 识别它是查询的一部分。否则它将尝试将所有 User.value 设置为 -1。 注意您必须将要更新的列的信息(标识符)放在第二个条件中。
关于database - CakePHP:使用 save() 添加/减去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883470/