2

我正在尝试根据此示例在我的表单中自定义错误呈现。

这是我的代码:

if ($this['message']->hasError()) {
  $error_msg = '<ul>';
  foreach ($this['message']->getError() as $error) $error_msg .= "<li>$error</li>";
  $error_msg .= '</ul>';
}

return $error_msg;

但是当$this['message']有错误时这个代码返回'<ul></ul>'所以它似乎foreach ($this['message']->getError() as $error)不会导致迭代

$this['message']->getError()返回sfValidatorError对象 - 也许在 symfony 1.4 中发生了一些变化,它不再是可迭代的......

起初我认为该示例中的所有魔术都是因为$error迭代放置的对象实现了 __toString() 但似乎根本没有迭代发生......

4

1 回答 1

2

你应该有变量 $form 来保存你正在显示的表单,代码应该是 $form['message']->hasError() 和 $form['message']->getError() ,其中 'message ' 是您表单中的一个小部件。不要使用 $this,因为它不包含此上下文中的表单。

于 2010-04-18T20:05:18.620 回答