Zend框架 - db_table - 保存错误的数据类型

时间:2011-08-27 11:59:22

标签: zend-framework zend-form zend-db-table

我正在使用Zend_db_table insert()方法并收到错误。该错误是因为我从POST接收数据作为字符串,但表列的数据类型是浮点数。因此,当我尝试将字符串类型插入float列时会产生错误。

解决此问题的正确方法是什么?

以下是型号代码:

class User_Model_Forms extends Zend_Db_Table_Abstract {
    public function save(array $data) {
        return $this->insert($data);
    }
    ...

这是控制器代码:

$form = new User_Form_Firstpart();
if ( $form->isValid($request->getPost()) ){
    $data = $form->getValues();
    $formModel = new User_Model_Forms();
    $formModel->save($data);

    ...

这是数据库表:

form table

1 个答案:

答案 0 :(得分:1)

尝试将输入转换为float,然后再将其传递给insert:

$this->insert(array(
    'someColumn' => (float) $the_value,
));

BTW不要忘记在表单中添加一个浮动验证器。