UPDATE-Abfrage mit CakePHP
Ich weiß, dass ich verwenden können $this->Model->save()
zu aktualisieren, einen bestimmten Datensatz, wenn ich übergeben Sie die id, aber wie kann ich ein update für ein einzelnes Feld in dieser Zeile?
Ich habe eine users
Tabelle mit einem balance
Feld. Ich will update das balance
Feld basiert auf, was bereits vorhanden ist.
Angenommen, ein Benutzer hat $20 in dem Feld Saldo. Ich möchte hinzufügen $1, um $21. Ich weiß nur einen Weg, wie dies zu tun ist die Verwendung
$balance = $this->Model->find('first', array(
'conditions' => array('User.id' => $userId),
'fields' => array('User.balance')
));
$this->Model->save(array(
'User' => array('id' => $userId, 'balance' => $balance['User']['balance'] + $credit)
));
Wie kann ich erreichen, dass alle in einem save
nennen?
InformationsquelleAutor James Dawson | 2012-07-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie dies:-
InformationsquelleAutor Abid Hussain
Dies tun sollte:
InformationsquelleAutor tigrang
Sollte den trick tun!
Ich bin nicht einmal ein CakePHP-Mann (eher ein CodeIgniter Kerl) und ich fand es heraus! Sorry!
Nur eine zusätzliche Anmerkung: stellen Sie sicher, dass
$this->Model->id
eingestellt ist, bevor Sie den AnrufIch sah in der Verwendung dieser, bevor ich mein post geschrieben und schon erwähnt. Sorry. Es funktioniert nicht, es läuft diese Abfrage:
UPDATE database.users SET balance = 'balance+1' WHERE database.users.id = '26'
. Diebalance
Feld ist ein decimal (20, 4).Ich habe keine Ahnung, warum das nicht funktioniert. Vielleicht versuchen hartzucodieren die Abfrage und sehen, ob das funktioniert?
InformationsquelleAutor David