I’m trying to simply perform the following via Cake’s save() function.
UPDATE user SET value = value-1
However, it seems it can only set. It will not understand anything I pass to it to increment or subtract, and no one on the internet seems to be having this issue. 😛 Even when going through a full piece of software someone built on CakePHP 2.0, I’m finding $this->query() used for updating by increments! Is this really how I’ll update if I don’t already have the value to be setting?
(code appears as follows)
$data = array('id' => uid, 'value' => "Users.value = Users.value - 1");
$this->User->save($data);
The code for producing an increment or decrement in CakePHP database is as follows:
Arun’s answer was not correct; you must put the – 1 within quotes to get Cake to recognize it is part of the query. Else it will try to set all User.value to -1. Note that you must put the information (identifiers) of the columns that you want to update on in the second condition.