0

试:

Mage::getModel('module/table')
       ->setId($obj->getId()) //"using _afterSave(Mage_Core_Model_Abstract $obj)"
       ->setCounter(+2) //"want to add to existing integer in table column"
       ->save();

on enable log-all-queries sql语句:

SQL: UPDATE `table` SET `counter` = ? WHERE (id='2')
      BIND: array (
       0 => 1,
     ) 

尝试在每次使用 magento 模型更新时添加到表列 (int) 中的现有值 (int) 中。但正如它在 sql 语句中明确的那样,没有发生。我怎样才能做到这一点?

非常感谢您的宝贵时间。

4

2 回答 2

0

如果我理解正确,您只想将当前值增加counter1。

假设$obj->getCounter()包含当前计数器值,您可以这样做:

Mage::getModel('module/table')
    ->setId($obj->getId())
    ->setCounter($obj->getCounter() + 1) // increment counter by 1
    ->save();
于 2013-06-20T13:22:47.240 回答
0

我通过使用 zend dp expr 解决了它

Mage::getModel('module/table')
           ->setId($obj->getId()) //"using _afterSave(Mage_Core_Model_Abstract $obj)"
           ->setCounter(new Zend_Db_Expr('counter + 1')) //"want to add to existing integer in table column"
           ->save();

SQL 语句:

UPDATE `table` SET `counter` = counter + 1 WHERE (id='2')

问候,

于 2013-06-21T04:32:03.483 回答