ドロップダウンボックスであるフォーム要素 companyState があります
$companyState = $this->createElement('select', 'companyState')
->addMultiOptions(
array (
'' => 'Select',
)
)
->setAttrib('id', 'companyState')
->setRequired(true)
->setAttribs(
array(
'title' => 'companyState',
'class' => 'st-select'
)
)
->removeDecorator('HtmlTag')
->removeDecorator('label');
フォーム要素を $this->addElements(array($companyState)); として渡します。
コントローラーでは、テーブルから companyState 名を取得し、以下のようにフォームに割り当てています
$stateListObject = ST_State_StateList::readStateListWithDetailsFromDatabase();
$stateListIterObject = new ST_State_StateListIter($stateListObject);
$stateNameArray = array();
for (; $stateListIterObject->valid(); $stateListIterObject->next()) {
$stateListObject = $stateListIterObject->current();
$stateNameArray[$stateListObject->id] = $stateListObject->state_name;
}
$companySettingsFormObject = App::getForm('Company', 'ST_CompanySettingsForm');
$obj = $companySettingsFormObject;
if (!($obj instanceof $companySettingsFormObject)) {
$companySettingsFormObject = App::getForm('Company', 'ST_CompanySettingsForm');
}
$companySettingsFormObject->getElement('companyState')->addMultiOptions($stateNameArray);
Fatal Error: call to member function addMultiOptions() on a non object in zend 時々発生しますが、毎回ではありません。フォーム要素を追加/削除したり、キャッシュから削除したりするなど、ファイルに変更を加えた場合。このエラーが発生します。問題を追跡して修正する方法を教えてください