Должен ли я повторно заполнять поля Zend_Form после публикации обратно вручную? - PullRequest
0 голосов
/ 19 декабря 2010

После отправки сообщения, если проверка завершилась неудачно, и я хочу снова показать форму с ошибками, я обнаружил, что форма пуста, нужно ли мне заполнять поля формы вручную?

Ответы [ 3 ]

1 голос
/ 19 декабря 2010

Метод isValid заполняет поле формы. Вам не нужно заполнять вручную.

1 голос
/ 19 декабря 2010

Я считаю, что лучший способ справиться с обработкой форм - это использовать что-то вроде

$form = new My_Form;
if ($this->getRequest()->isPost()
    && $form->isValid($this->getRequest()->getPost()) {
    // process form and redirect (PRG pattern)
}
$this->view->form = $form;

Таким образом, ваша форма отображается при первом запросе и, если она недействительна, повторно отображается с переданными значениямии любые сообщения проверки.

0 голосов
/ 20 декабря 2010

Если вы используете какой-то пользовательский isValid, не забудьте, что ваша форма также имеет функцию populate ().

Итак

$data = $this->getRequest()->getPost();
if(!$myForm->isValid($data)){
    $myForm->populate($data);
}

Нет необходимости делать это вручную, вот иконечно.

Конечно, не забудьте назначить тот же объект, который вы сделали, isValid - заполнить вызовы на

$this->view->form = $myForm;

После проверок.

...