POSTing для различных действий с Zend_Form (и проверки) - PullRequest
1 голос
/ 07 октября 2009

Я использую Zend Framework, и мне интересно, как люди обрабатывают отправку форм. Прямо сейчас я использую что-то вроде этого:

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

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

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

    }
  }

Попытка публикации страницы при обновлении просто раздражает и расстраивает пользователя. Я бы хотел, чтобы вся обработка форм была перемещена из действия «edit» и в действие «update» (более подход RESTful). Однако я не нашел хорошего способа воспользоваться встроенными в Zend_Form декораторами проверки без использования вышеуказанного подхода. Используя метод выше, сообщения об ошибках появляются автоматически, если я $form->populate() форма после вызова $form->isValid().

Есть ли какой-нибудь хороший способ сохранить сообщения проверки в форме между запросами (используя декораторы). Если нет, есть ли у кого-нибудь надежное решение для сохранения проверки формы в сеансе?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 октября 2009

После обработки формы переадресация на другой контроллер / действие. Это отправит заголовок перенаправления клиенту, и он сможет обновить страницу без раздражающего окна предупреждения.

if ($form->isValid($params) {
    // process form
    ....
    ....
    $this->_helper->Redirector->goto('another-action');
}
0 голосов
/ 07 октября 2009

По-моему, вот так:

/ index action -> список постов в блоге -> обновить действие -> обновить запись в блоге, выбранную в индексе в действии обновления (псевдокод):

if(is_post){
  if(data_valid){
    update_data()
    redirect_to_index()
  } else {
    show_messages()
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...