отобразить ошибку пост-проверки Symfony во встроенной форме - PullRequest
2 голосов
/ 15 июня 2011

У меня есть форма, которая содержит embededForms.

Пост-валидатор:

$this->validatorSchema->setPostValidator(
  new sfValidatorCallback(
    array('callback' => array($this, 'myPostValidator'))
  )
);

Я выкидываю ошибку в методе myPostValidator:

$error = new sfValidatorError($validator, 'invalid ' . $values['embededform1']['field']);
throw new sfValidatorErrorSchema($validator, array('field' => $error));

сейчасЯ получаю глобальную ошибку для корневой формы.

Я хочу отобразить ошибку рядом с правильным полем.

$values['embededform1']['field']

Ответы [ 2 ]

1 голос
/ 16 июня 2011

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

В качестве альтернативы вы можете попробовать следующее в обратном вызове в форме контейнера:

$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));
0 голосов
/ 05 февраля 2012
$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));

это сработало для меня.

...