zend validate multi select box - PullRequest
       7

zend validate multi select box

6 голосов
/ 23 апреля 2011

Я использую проверки 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;
}
}

Но какМогу ли я устранить ошибку?

1 Ответ

11 голосов
/ 23 апреля 2011

Чтобы в вашей форме было несколько элементов выбора, вы должны использовать Zend_Form_Element_Multiselect , а не Zend_Form_Element_Select, например:

$days = new Zend_Form_Element_Multiselect('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty');
...