无法在symfony 1.4中使用自定义错误呈现

时间:2010-04-15 12:32:03

标签: php oop symfony1 symfony-1.4 symfony-forms

我想根据this example在我的表单中自定义错误呈现。

这是我的代码:

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中发生了一些变化,而且它不再可迭代了......

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

1 个答案:

答案 0 :(得分:2)

你应该有变量$ form,它包含你正在显示的Form,代码应该是$ form ['message'] - &gt; hasError()和$ form ['message'] - &gt; getError( ),'message'是表单中的小部件。不要使用$ this,因为它不会在此上下文中保留表单。