Varolan biçimlendirme ile bir Zend_Form işlemek için en iyi yolu

2 Cevap php

Çünkü vb onun doğrulama ve filtrelerin Zend_Form kullanmak istiyorum Ama formları için biçimlendirme zaten yapılır. Daha da kötüsü, çok standart değil, yani benim özel dekoratörler yazılı bir çözüm değildir.

Çok özel bir biçimlendirme varolan Zend_Form "uygulamak" için basit bir yolu var mı? Ben ortak bir sorun olduğunu düşünüyorum.

2 Cevap

Eğer olarak kendi el yapımı-HTML-formunda aynı isimleri kullanırsanız Zend_Form sadece veri alımı formu örneğini yapabilirsiniz:

public function processFormAction()
{
    $form = new My_Form(); // this is your Zend_Form
    if ($form->isValid($_POST)) {
        // success!
    } else {
        // failure!
    }
}

Eğer istemiyorsanız eğer Zend_Form oluşturma özelliklerini kullanmaya gerek yoktur.

İkinci seçenek formun elemanları ile özel biçimlendirme birleştirmek için:

// view-script with $form being the the Zend_Form passed into the view
<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction()?>">
    <div id="elements">
        <?php echo $form->element1->renderLabel() . $form->element1->renderViewHelper() ?>
        <br />
        <?php echo $form->element2->renderLabel() . $form->element2->renderViewHelper() ?>
    </div>
    <div id="buttons">
        <?php echo $form->button1->renderViewHelper() ?>
        &nbsp;
        <?php echo $form->button2->renderViewHelper() ?>
    </div>
</form>

Alternatif yalnızca girişini süzmek ve doğrulamak istiyorsanız, size Zend_Form tüm kabartmak önlemek ve sadece ([{konuşulan olan Zend_Filter_Input kullanın 0)]} tüm biçimlendirme şeyler olmadan. Zend_Filter_Input tüm standart ve özel filtreler kullanabilir ve doğrulayıcı gibi size Zend_Form, geçiş oldukça kolay olmalıdır ile kullanmak mümkün olacaktır.

Bunu yapmanın bir çok yolu kıvrımlara özellikle özel biçimlendirme içine formları işlemek için tasarlanmış ViewScript formu dekoratör ile, var. Bu Stefan tarafından verilen örneğe benzer bir şekilde çalışıyor ama kendi komut veya partials kullanabilir, ve yapmak istediğiniz tüm özel biçimlendirme içine koymak elemanları, onların etiketleri ve hataları ise çok daha az iş yapmak gerekir.

Official Reference Guide ve daha özel olarak bu Zend gör devzone article.