我有一个按钮,当点击该按钮时,它将按行更新一行。
它不起作用它只更新到数据库表中的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();
}
答案 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。