Формы Symfony: отображать флажок (с начальным состоянием unchecked) - PullRequest
2 голосов
/ 11 ноября 2010

Я использую Symfony 1.3.x для проекта.

В методе configure () одной из моих форм у меня есть следующий код:

'terms' => new sfWidgetFormInputCheckbox(array('value_attribute_value'=>'terms', 'default' => false )),

Идея состоит в том, чтобы предоставить пользователю флажок (по умолчанию снят), который пользователь должен будет проверить перед проверкой формы.

Проблема в том, что когда я отображаю форму, флажок ВСЕГДА уже установлен (т. Е. Установлен), что лишает цель принудительного подтверждения пользователя с помощью флажка.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 11 ноября 2010

Значения формы по умолчанию в Symfony по существу имеют недокументированную иерархию. Это (старшие числа имеют более высокий приоритет):

  1. Значение виджета по умолчанию.
  2. Если форма предназначена для новой записи, значение записи.
  3. Уровень формы по умолчанию для виджета (да, виджеты и формы могут отслеживать отдельные значения по умолчанию).
  4. Если форма предназначена для существующей записи, значение записи.

Полагаю, одно из 2, 3 или 4 заменяет значение по умолчанию на уровне виджета. Обратите внимание, что 3. заменяет 4. когда установленное значение по умолчанию вызывается после sfFormDoctrine звонков updateDefaultsFromObject.

2 голосов
/ 04 мая 2011

еще несколько примеров

$this->widgetSchema['listing_status'] = new sfWidgetFormInputCheckbox(array(),array('value'=>1));
$this->setDefault('listing_status',1);
2 голосов
/ 17 января 2011
$this->setDefault("is_tested", false);  // unchecked checkbox
...