Как искусственно проверить Zend-форму (без отправки) - PullRequest
2 голосов
/ 08 марта 2011

Я пытаюсь заполнить форму данными и проверить ее, искусственно, т.е. без фактической отправки пользователем формы. Поэтому я создаю форму и пытаюсь заполнить ее данными, используя setValue. Затем я использую $form->isValid(), но он запрашивает данные формы. Так как у меня нет фактической отправки сообщения, не знаю, как получить эти данные. Он уже хранится в форме, так почему isValid () не может получить данные из самой формы. Кто-нибудь знает, как я мог проверить эту форму без фактической отправки?

$form = new MyForm();
$form->field1->setValue('some value');
$form->field2->setValue('field2 value');
$form->field3->setValue('last field');

if($form->isValid()){
  //do something
} else {
  //do something else
}

1 Ответ

2 голосов
/ 08 марта 2011

Вместо isValid вы используете

Пример:

if ($form->valid()) {
    echo 'It is valid';
}

Если вы хотите использовать isValid, задайте и подтвердите данные формы с помощью связанного массива, например,

if ($form->isValid(array(
    'field1' => 'foo',
    'field2' => 'bar',
    …
))) {
    echo 'It is valid';
}
...