Symfony: sfWidgetFormInputCheckbox () «включено» против истинной формы доктрины? - PullRequest
0 голосов
/ 16 августа 2011

У меня есть специальная форма, которую я создал, которая расширяет базовые формы Doctrine для объекта Doctrine.

У меня есть поле базы данных типа: логическое. Для моей формы это представлено в виде sfWidgetFormInputCheckbox() виджета. Когда моя форма отправлена, значение моего флажка возвращается как on, если оно было проверено, и если оно не было проверено, то значение не передается. В любом случае, когда я делаю $form->save(), логическое поле не затрагивается. Symfony / Doctrine хочет увидеть true или false. Не on или не имеет значения вообще.

Мое решение - просто посмотреть, передано ли значение вообще, и если да, то это поле будет true else false:

$values['my_field'] = isset($values['my_field']) ? true : false;

Это правильный способ справиться с этим? Я думаю, что Symfony / Doctrine уже поймет, как обращаться с флажками. Я ожидаю, что он будет знать, что если значение для флажка возвращается как on, то для установки этого значения в базе данных как true, а если оно не существует, то это false.

Очевидно, мой подход работает ... но что такое ПРАВИЛЬНЫЙ подход?

1 Ответ

2 голосов
/ 16 августа 2011

sfValidatorBoolean возвращает истину или ложь. Если вы не получили истину или ложь после привязки формы, вы не используете этот валидатор.

...