2

我有一个包含 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']
4

2 回答 2

1

我的第一个建议是在嵌入式表单中添加帖子验证器。在嵌入时,它会将验证器复制到容器表单中,并且您用于引发异常的代码应该可以按预期工作。

或者,您可以在容器表单的回调中尝试以下操作:

$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));
于 2011-06-16T08:24:44.633 回答
0
$error = new sfValidatorError($validator, 'invalid');
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error));
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema));

这对我有用。

于 2012-02-05T07:43:06.263 回答