Symfony表单:显示一个复选框(初始状态为未选中)

时间:2010-11-11 10:26:32

标签: php symfony1 symfony-forms

我正在使用Symfony 1.3.x进行项目。

在我的一个表单的configure()方法中,我有以下代码:

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

这个想法是向用户显示一个复选框(默认未选中),用户在表单验证之前必须检查该复选框。

问题在于,当我显示表单时,复选框始终已经被选中(即选中) - 这违反了使用复选框强制执行用户确认的目的。

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

Symfony中的默认表单值基本上具有未记录的层次结构。它是(更高的数字具有更高的优先权):

  1. 小部件的默认值。
  2. 如果表单是新记录,则为记录的值。
  3. 窗口小部件的表单级别默认值(是的,窗口小部件和表单可以跟踪SEPARATE默认值)。
  4. 如果表单是针对现有记录的,则为记录的值。
  5. 我的猜测是2,3或4中的一个取代了您的小部件级默认值。请注意3.取代4.当设置默认值在sfFormDoctrine调用updateDefaultsFromObject后调用。

答案 1 :(得分:2)

$this->setDefault("is_tested", false);  // unchecked checkbox

答案 2 :(得分:2)

更多例子

$this->widgetSchema['listing_status'] = new sfWidgetFormInputCheckbox(array(),array('value'=>1));
$this->setDefault('listing_status',1);