Zend_Form (ve doğrulama) ile farklı eylem ilanı

2 Cevap php

Ben Zend Framework kullanarak ve insanların form gönderimini nasıl ele merak ediyorum ediyorum. Şu anda, ben böyle bir şey kullanıyorum:

 public function editAction()
 {
    $form = my_form();
    $this->view->form = $form;

    if ($this->getRequest()->isPost() {
       $params = $this->getRequest()->getPost();

       if ($form->isValid($params) {
          // process form
       }

    }
  }

Sayfa yenileme formu repost deneyin olması kullanıcı için sadece can sıkıcı ve sinir bozucu. Tüm form işleme 'düzenle' eylem taşındı ve bir 'update' eylem (daha dinlendirici bir yaklaşım) içine almak istiyorum. Ancak, yukarıdaki yaklaşım kullanmadan Zend_Form en doğrulama dekoratörler inşa yararlanmak için iyi bir yol çözemedim. Yukarıdaki yöntemi kullanarak, hata iletileri otomatik olarak görünür eğer ben çağırdıktan sonra $form->populate() form $form->isValid().

(Dekoratörler kullanarak) istekleri karşısında bir form doğrulama mesajları inat için iyi bir yolu var mı. Eğer değilse, herkes oturumda form doğrulama depolamak için sağlam bir çözüm var mı?

Teşekkürler.

2 Cevap

Başka bir denetleyici / eylem ileri formu işledikten sonra. Bu istemciye bir yönlendirme başlığı gönderir ve o can sıkıcı uyarı penceresinde olmadan sayfayı yenilemek mümkün olacak.

if ($form->isValid($params) {
    // process form
    ....
    ....
    $this->_helper->Redirector->goto('another-action');
}

Benim yolum bu gibi sth:

/index action -> list of lets say blog posts ->update action -> updating a blog post selected in index in update action (pseudocode):

if(is_post){
  if(data_valid){
    update_data()
    redirect_to_index()
  } else {
    show_messages()
  }
}