#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');