在嵌入的表单中显示symfony后验证错误

时间:2011-06-15 18:00:56

标签: forms symfony1 validation customvalidator

我有一个包含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));

现在我收到了root-form的全局错误。

我想在正确的字段旁边显示错误。

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

2 个答案:

答案 0 :(得分:1)

我的第一个建议是在嵌入表格中添加帖子验证器。嵌入它时会将验证器复制到容器表单中,抛出异常的代码应该按预期工作。

备选方案,您可以在容器表单的回调中尝试以下操作:

$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));

答案 1 :(得分:0)

$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));

这对我有用。