Может быть, вы уже исправили, но на всякий случай.
У меня была та же проблема, и проблема заключалась в названии определенных атрибутов в форме. В вашем случае у вас есть:
if($this->contactID != null){
$formContactID = new Zend_Form_Element_Hidden('ContactID');
$formContactID->setValue($this->contactID);
}
В тот момент, когда вы добавили $ formContactID в форму, для объекта формы был создан новый внутренний атрибут, который называется «ContactID». Теперь у нас есть $ this-> ContactID и $ this-> contactID.
В соответствии со стандартами PHP это не должно быть проблемой, потому что имена ключей и атрибутов ассоциативных массивов чувствительны к регистру, но я просто хотел использовать ваш код для иллюстрации поведения Zend Form.
Пересмотрите оставшуюся часть кода в вашей форме, чтобы убедиться, что вы не переопределяете какой-либо элемент Zend. Извините за предположение, но поскольку вы не опубликовали весь код для файла формы, его немного сложнее отладить.
Спасибо, и я надеюсь, что это поможет.