Zend更新行

时间:2013-01-14 21:34:25

标签: database zend-framework

我有一个按钮,当点击该按钮时,它将按行更新一行。

它不起作用它只更新到数据库表中的1,下次我点击它不会变为2,它保持在1.我想要它,每次我点击它增加数字1。

这是模型中的功能:

class Application_Model_DbTable_Row_User extends Sayka_Db_Table_Row_Abstract
{
    public function grantDiscount()
    {
        $this->has_discount = has_discount + 1;
                // $this->has_discount++; <- not working too, only increment to 1.
        $this->save();
    }
}

控制器:

if (isset($_POST['btn_buy_now']))
{
     $user->grantDiscount();
}

2 个答案:

答案 0 :(得分:1)

我通常不会以这种方式使用DbTable_Row对象,但我认为你的函数应该是这样的:

<?php
class Application_Model_DbTable_Row_User extends Sayka_Db_Table_Row_Abstract
{
    public function grantDiscount()
    {
        /*row object->column->has_discount = row object->column->has_discount +1*/
        $this->has_discount = $this->has_discount + 1;

        $this->save();
        /*returning the row object may or may not be important or helpful in this case.*/
        return $this;
    }
}

请记住save()返回插入/更新的行的主键或异常。

答案 1 :(得分:0)

Zend_Db_Table_Row_Abstract和Sayka_Db_Table_Row_Abstract之间有什么区别吗?可能它取代了zend原始魔法__get和__set。