2009-01-16 11 views
8

Unten ist Beispielcode, um ein Optionsfeldelement mit Ja/Nein-Optionen in Zend_Form zu erstellen. Irgendwelche Ideen, wie man die erforderliche Antwort auf Ja setzt, wenn also Nein ausgewählt wird, wird die Validierung fehlschlagen? Der folgende Code nimmt entweder Ja oder NeinZend_Form Funkelement

$question= new Zend_Form_Element_Radio('question'); 
    $question->setRequired(true) 
     ->setLabel('Are you sure?') 
     ->setMultiOptions(array('Yes', 'No')); 

Antwort

6

Nicht sicher, ob dies der beste Weg ist, aber es funktionierte für mich:

$questionValid = new Zend_Validate_InArray(array('Yes')); 
$questionValid->setMessage('Yes is required!'); 

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator($questionValid); 
+0

funktioniert super, danke – dittonamed

0

einen schnelleren Weg, obwohl dies nicht funktionieren würde für andere Situationen:

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator('StringLength', false, array('min' => 3, 'messages' => "You must be sure.")); 

Da „nein“ weniger als 3 Zeichen ist, wird dies fehlschlagen, wenn „ja“ gewählt. Es ist ein bisschen "hacky", aber ich mag diesen Weg, weil es weniger Code verwendet und auch die eingebauten Validatoren nutzt.