0

ボタンがあります。そのボタンをクリックすると、行が +1 更新されます。

データベーステーブルで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();
}
4

2 に答える 2

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()挿入/更新された行の主キーまたは例外を返すことに注意してください。

于 2013-01-15T05:35:48.703 に答える
0

Zend_Db_Table_Row_Abstract と Sayka_Db_Table_Row_Abstract の間に違いはありますか? おそらくそれは、zend 独自のマジック メソッド __get および __set を置き換えます。

于 2013-01-15T08:34:18.733 に答える