Увеличение поля базы данных Cakephp на значение

У меня есть это поле, значение которого я должен увеличить значение поля на определенное значение. Я использую этот

$data['quantity']     = 'Order.quantity+1';

который не работает для меня, количество здесь целое coloumn. Также будет ли он работать, когда в базе данных ничего нет?

Отношения Химаншу Шарма

Ответ 2

Я использовал updateAll в своем коде для увеличения просмотров в статье. Поэтому каждый раз, когда вы посещаете статью, я вызываю следующую функцию из моего действия в моем контроллере статей:

function incrementViewCount($id) {
    $this->updateAll(
        array('Article.viewed' => 'Article.viewed+1'),                    
        array('Article.id' => $id)
    );
}

Затем в вашем контроллере...

$this->MyModel->incrementViewCount(123);

В основном похож на учебник, предложенный в предыдущем ответе.

Ответ 3

Вы также можете попробовать этот код. Прекрасно работает для простых операций c++/- без необходимости дополнительного запроса.

https://gist.github.com/denchev/8209318

Ответ 4

Использование saveField:

<?php

$this->Article->id = $id;
$this->Article->saveField('viewed', (int)$this->Article->field('viewed') + 1);

?>