2

sfValidatorChoice 不适用于多个选择元素,我的代码

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

4

1 回答 1

2

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

"multiple" => true

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

"required" => false

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

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

我不确定这会解决问题,但它可能会很好。

于 2010-10-05T12:47:29.920 回答