Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Zend_Form setIgnore(true) nie działa

Witam wszystkich,

ostatnio z niewiadomych przyczyn troche projekt zaczął mi się walić a w szczególnoście formularze. Dziś zobaczyłem, że setIgnore(true) nie spełnia swojej funkcji tzn. mając sobie np.


$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Zapisz')
->setAttrib('id', 'fSubmit')
->setIgnore(true);


po wysyłce post'a dostaje błędy w formularzu:

"Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'submit' in 'field list'"


co oznacza, że nie ma takiej kolumny jak submit w tabelce co jest prawdą, nie mniej jednak dając setIgnore(true) miałem nadzieje że parametr w poście zostanie pominięty.

Macie pomysły co może być przyczyną ?
Arkadiusz Burszczan

Arkadiusz Burszczan Programista Java

Temat: Zend_Form setIgnore(true) nie działa

Może daj setRequired(false) zamiast setIgnore(true);Arkadiusz Burszczan edytował(a) ten post dnia 14.03.11 o godzinie 23:10
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Zend_Form setIgnore(true) nie działa

no własnie nie do końca tak chce bo np. niektóre pola są wymagane ale musza być ignorowane np. csrf token. on musi być ale w parametrach ma dalej nie iść
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: Zend_Form setIgnore(true) nie działa

setIgnore() nie oznacza, że element nie zostanie wysłany; oznacza, że ma być pomijany przy pobieraniu wartości formularza - patrz Zend_Form::getValidValues() i Zend_Form::getValues() - tam jest używane Zend_Form_Element::getIgnore()

Rozwiązaniem u Ciebie może być zamiana przy obsłudze formularza - może zamiast w isValid() stosować getPost()/getParams() dawaj getValues() ?
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Zend_Form setIgnore(true) nie działa

Ha! faktycznie getValues() miałem w innych formularzach tu dałem getPost - chyba ze zmęczenia :) Dzieki za pomoc!

Pozdrawiam



Wyślij zaproszenie do