6

フォームでzend検証を使用していますが、フォームで複数選択ボックスを検証できませんでした。

これは、次の形式の複数選択要素です。

$days = new Zend_Form_Element_Select('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty')
->setAttrib('multiple', 'multiple');

複数選択ボックスでオプションを選択した場合でも、フォームの送信中に次のエラーが発生します。

干し草の山に配列が見つかりませんでした

そして、Zend / Validate / InArray.phpに次のコードがあります。これは、単一のフォーム要素のみを検証できますが、配列は検証できません。

public function isValid($value)
{
$this->_setValue($value);
if (in_array($value, $this->_haystack, $this->_strict)) 
{
return true;
}
}

しかし、どうすればエラーを解決できますか?

4

1 に答える 1

11

フォームに複数選択要素を含めるには、Zend_Form_Element_SelectではなくZend_Form_Element_Multiselectを使用する必要があります。例:

$days = new Zend_Form_Element_Multiselect('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty');
于 2011-04-23T14:01:24.763 に答える