У меня есть специальная форма, которую я создал, которая расширяет базовые формы 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
.
Очевидно, мой подход работает ... но что такое ПРАВИЛЬНЫЙ подход?