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

发布于 2024-12-01 23:26:42 字数 658 浏览 0 评论 0原文

我正在使用 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

I'm using the Zend_db_table insert() method and get an error. The error is because I receiving data from POST as a string but the datatype for the table column is float. So it creates error when I try to insert string type into float column.

What's the proper way to resolve this?

Here's the model code:

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

Here's the controller code:

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

    ...

Here's the database table:

form table

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗忘曾经 2024-12-08 23:26:42

在将输入传递到插入之前尝试将输入转换为浮点型:

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

顺便说一句,不要忘记在表单中添加浮点型验证器。

Try converting the input to float before passing it to insert:

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

BTW don't forget to add a float validator to your form.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文