0

这是基类的一个片段:

$this->hasColumn('order_total', 'float', null, array(
         'type' => 'float',
         'fixed' => false,
         'unsigned' => false,
         'primary' => false,
         'notnull' => true,
         'autoincrement' => false,
         ));

这是我的用法:

public function preInsert($event)
{    
    echo $total = $this->_totalWithTax;

    $this->order_total = $total;

    $this->created_at = Zend_Date::now()->toString('yyyy-MM-dd HH:mm:ss');
}

出于某种原因,它仅在$total是整数时才有效,但在其值为浮点数时不起作用(顺便说一句,这是最常见的情况)。我通过类型转换对此进行了测试。

我徒劳地试图理解为什么会这样,我快要把头发扯掉了。

此外,使用$this->_set('order_total', $total);也不起作用。

编辑:我忘了提到我在课堂上有一个吸气剂覆盖:

public function getOrderTotal()
{
    return $this->_totalWithTax;
} 

万一它确实有很大的不同。

调用该save方法时,出现此错误:

Validation failed in class LP_Orders 1 field had validation error: * 1 validator failed on order_total (notnull)

我错过了什么吗?

4

1 回答 1

0

你能试试这个:

$this->hasColumn('order_total', 'float', null, array(
         'type' => 'float',
         'scale' => 8,
         'fixed' => false,
         'unsigned' => false,
         'primary' => false,
         'notnull' => true,
         'autoincrement' => false,
         ));
于 2012-06-21T08:22:31.277 回答