我正在使用Symfony 1.3.x进行项目。
在我的一个表单的configure()方法中,我有以下代码:
'terms' => new sfWidgetFormInputCheckbox(array('value_attribute_value'=>'terms', 'default' => false )),
这个想法是向用户显示一个复选框(默认未选中),用户在表单验证之前必须检查该复选框。
问题在于,当我显示表单时,复选框始终已经被选中(即选中) - 这违反了使用复选框强制执行用户确认的目的。
有谁知道如何解决这个问题?
答案 0 :(得分:3)
Symfony中的默认表单值基本上具有未记录的层次结构。它是(更高的数字具有更高的优先权):
我的猜测是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);