以下是基类的片段:
$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);
也不起作用。
编辑:我忘了提到我在课堂上有一个getter覆盖:
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)
我错过了什么吗?
答案 0 :(得分:0)
请你试试这个:
$this->hasColumn('order_total', 'float', null, array(
'type' => 'float',
'scale' => 8,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => true,
'autoincrement' => false,
));