Ja klasu Zend_Form koristim samo za back-end validaciju, nikako za ispis, jer ne mogu da skapiram one dekoratere, itd.

Uvek imam samo klasu (model) koji se izvodi iz Zend_Form, i u konstruktoru definišem elemente od kojih se ta forma sastoji, i za svaki od njih, opciono, po neki filter i validator. A onda imam odvojen templejt, odnosno deo templejta, u kome se nalazi samo (x)HTML kod te forme, kojeg posle integrišem u neki glavni templejt skript. Naravno, imena polja u toj formi odgovaraju onima iz gore pomenutog modela. I onda u kontroleru, sve standardno, dohvatim submit-ovana polja iz forme, predam ih klasi Zend_Form na validaciju, npr.
$forma->isValid($_POST), i onda u zavisnosti od rezultata, radim dalje... Dakle, poenta je to da tu klasu koristim samo u svrhe filtriranja i validacije.
A to kad imaš checkbox-ove u formi, to je već "zavrnuto" kad ideš sa Zend_Form (barem meni

)... Naime, baš sam skoro u jednom mom projektu, koji inače nije rađen sa ZF-om, ali sam koristio nekoliko klasa iz tog paketa, između ostalog i Zend_Form, trebao da vršim validaciju jedna dva polja u formi, ali samo ako je čekiran jedan checkbox. I onda sam, posle par sati bezuspešnih pokušaja, video da nema vajde da mi taj checkbox bude element forme u mojoj klasi (modelu) koja se izvodi iz Zend_Form, pa sam taj problem rešio tako što sam najpre kreirao jednu pomoćnu f-ju u tom modelu:
Code:
protected function preValidation($data)
{
if ($data['sms_obavestenja'] == 'on') {
$this->getElement('mreza')->setRequired(true);
$this->getElement('broj_mobilnog')->setRequired(true);
}
}
I onda sam redefinisao onaj glavni metod isValid():
Code:
public function isValid($data)
{
$this->preValidation($data);
return parent::isValid($data);
}
To $data je u stvari ono $_POST koje šaljem formi na validaciju, i poenta je da sam radio tu pre-validaciju, kako bih video da li je taj checkbox štikliran, i ako jeste, onda sam ta dva polja koja su zavisna od tog checkbox-a "proglasio" za required, kako bi forma vršila validaciju ta dva polja. Jednostavno...
Tako da, što se tiče checkbox-ova, stvarno ne znam šta da ti kažem, ja njih izbegavam da "ugrađujem" u Zend_Form...
A za paginaciju koristim moju klasu
NP Pagination, odnosno samo onu glavnu klasu iz tog paketa, za generisanje tih linkova za straničenje, a podatke iz baze dovlačim sa LIMIT-ima, u zavisnosti od onog page parametra iz URL-a. Mada čini mi se da bi ona klasa iz ZF-a za tu namenu, mogla da odradi posao i kad se koristi van celog ZF-a...
[Ovu poruku je menjao Nikola Poša dana 03.06.2009. u 23:55 GMT+1]