sfValidatorChoice没有处理多个select元素,我的代码
$this->form=new MyTestForm();
$options_array=array("php","python","java");
$widgetSchema["my_select"] =new sfWidgetFormChoice(array('choices' => $options_array,'multiple' => true,'expanded' => true ));
$validatorSchema["my_select"] = new sfValidatorChoice(array("choices" =>array_keys($options_array)));
注意:我也尝试使用array_keys并直接将数组传递给sfValidatorChoice。
当我提交时,它会给我Invalid
错误(选中时)和Required
(未选中时)。
参数中是否有错误或是错误?
答案 0 :(得分:2)
首先,您需要在验证器和窗口小部件中启用“multiple”:
"multiple" => true
要使任何选择可选,您需要将所需设置为false
:
"required" => false
最后,我不能完全记住如何使用sfValidatorChoice(已经有一段时间了),但我认为最好使值可读,所以我会这样做:
$options_array=array('php'=>'php','python'=>'python','java'=>'java');
我不确定这会解决问题,但可能会这样做。