Преобразование '' в NULL в доктрине и Symfony - PullRequest
1 голос
/ 12 февраля 2010

Я использую фреймворк Symfony с mysql.

У меня есть поле в mysql, которое генерируется доктриной как:

 weight:  { type: double, notnull: false, default: NULL }       


`weight`  double(18,2) NULL DEFAULT NULL

Значение вводится в текстовом поле, и сгенерированный sql пытается вставить '' в это поле, если значение не указано.

Это приводит к следующей ошибке:

SQLSTATE[01000]: Warning: 1265 Data truncated for column 'weight' at row 1
  • Как изменить это значение так, чтобы вместо него использовался Doctrine_Null?
  • Кроме того, как бы я мог получить «(неизвестно)» для отображения, если поле пустое?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

возможно, вы могли бы попытаться использовать валидатор в вашей форме, например, sfValidatorNumber? http://www.symfony -project.org / апи / 1_4 / sfValidatorNumber

0 голосов
/ 12 февраля 2010

Это должно происходить в вашем классе Form / Validation. Если вы ожидаете получить пустые строковые значения, вам необходимо преобразовать их в null как часть этого процесса.

Что касается извлечения "неизвестного" для отображения, я, вероятно, сделал бы это как пользовательский метод получения для класса модели.

...