Tworzę sobie formularz żeby dodawać jakieś dane w DB
class Application_Form_Device extends Zend_Form { public function init() { $dev_name = new Zend_Form_Element_Text('dev_name'); $dev_name->setLabel('device name') ->setRequired(TRUE) ->setAttrib('size', 8) new Zend_Filter_StringToLower(), new Zend_Filter_StringTrim(), new Zend_Filter_StripNewlines(), new Zend_Filter_StripTags(), new Zend_Filter_Alnum() )) new Zend_Validate_NotEmpty() )); $dev_submit = new Zend_Form_Element_Submit('dev_add'); $dev_submit->setAttrib('id', 'submitbutton'); $dev_name, $dev_submit )); } }
w kontrolerze tworzę formularz i jego obsługę
public function addAction() { $device_form = new Application_Form_Device(); $this->view->device_Form = $device_form; if ($this->getRequest()->isPost()) { $devData = $this->getRequest()->getPost(); if ($device_form->isValid($devData)) { //costam robie dodaje do DB itp. } else { $device_form->populate($devData); } } }
i teraz mam taką sytuacje jakby warunek " if ($this->getRequest()->isPost())" był zawsze spełniony mimo że nie wysłałem żadnych danych tym formularzem. Co to może być - wiadomo że mam też inne formularze w serwisie choćby od logowania i przez to "isPost()" jest zawsze spełniony?
na razie zrobiłem coś takiego że sprawdzam czy w tablicy POST są konkretne klucze należące do tego formularza ale trochę to skomplikowane jeśli w formularzu mam 10 elementów różnego typu. Gdzie leży problem jak to obsłużyć?