2010-10-05 3 views
2

sfValidatorChoice ne fonctionne pas sur plusieurs éléments de sélection, mon codesfValidatorChoice ne fonctionne pas sur plusieurs éléments de sélection

$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))); 

Note: J'ai aussi essayé d'utiliser array_keys et en passant directement le tableau à sfValidatorChoice. Lorsque je le soumets, il me donne Invalid erreur (lorsque cochée) et Required (lorsque non cochée)

Y at-il une erreur dans les paramètres ou est bug?

Répondre

2

Tout d'abord, vous devez activer « multiples » dans le validateur, ainsi que le widget:

"multiple" => true 

Pour faire avoir une sélection en option, vous devez définir nécessaire pour false:

"required" => false 

Enfin, je ne me souviens pas exactement comment utiliser sfValidatorChoice (ça fait longtemps), mais je pense qu'il est préférable de rendre les valeurs lisibles, donc je ferais:

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

Je ne suis pas certain que cela va résoudre le problème, mais il se peut bien.

+0

ouais! merci @lonesomeday ça a marché! –

+0

le problème était, je n'ai pas mis "multiple" => true dans sfValidatorChoice, le "choix" => $ options_array. par conséquent, il ne fonctionnait pas comme souhaité ... –

Questions connexes