sfValidatorChoice不处理多个选择元素

时间:2010-10-05 08:25:02

标签: php symfony1 symfony-forms

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(未选中时)。 参数中是否有错误或是错误?

1 个答案:

答案 0 :(得分:2)

首先,您需要在验证器和窗口小部件中启用“multiple”:

"multiple" => true

要使任何选择可选,您需要将所需设置为false

"required" => false

最后,我不能完全记住如何使用sfValidatorChoice(已经有一段时间了),但我认为最好使值可读,所以我会这样做:

$options_array=array('php'=>'php','python'=>'python','java'=>'java');

我不确定这会解决问题,但可能会这样做。