Zend Framework - db_table - неверный тип данных сохраняется - PullRequest
0 голосов
/ 27 августа 2011

Я использую метод вставки Zend_db_table () и получаю ошибку. Ошибка в том, что я получаю данные из 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 Ответ

1 голос
/ 27 августа 2011

Попробуйте преобразовать входные данные в число с плавающей точкой, прежде чем передавать их на вставку:

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

Кстати, не забудьте добавить в форму валидатор с плавающей точкой.

...