zend проверяет поле множественного выбора

#php #zend-framework #zend-form #zend-validate

#php #zend-framework #zend-форма #zend-validate

Вопрос:

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

Чтобы в вашей форме было несколько элементов выбора, вы должны использовать 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');