通过值递增Cakephp数据库字段

时间:2011-12-31 16:29:10

标签: cakephp cakephp-1.3

我有这个字段,其值必须将字段值增加一个特定值。 我正在使用这个

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

这对我来说不起作用数量是一个整数coloumn。 当数据库中没有任何东西时它也会工作吗?

此致 Himanshu Sharma

4 个答案:

答案 0 :(得分:16)

我在代码中使用了updateAll来增加文章中的视图。因此,每次访问文章时,我都会在文章控制器的视图操作中调用以下函数:

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

然后在你的控制器......

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

基本上类似于上一个答案中建议的教程。

答案 1 :(得分:14)

您可以将updateAll()用于此

有点谷歌搜索显示这很快: http://cakephp.1045679.n5.nabble.com/Auto-Increment-A-Field-td3491697.html

答案 2 :(得分:2)

您也可以尝试使用此代码。适用于简单的++ / - 操作,无需额外的查询。

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

答案 3 :(得分:1)

使用saveField:

<?php

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

?>