我想根据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
中,但似乎根本没有迭代发生......
答案 0 :(得分:2)
你应该有变量$ form,它包含你正在显示的Form,代码应该是$ form ['message'] - &gt; hasError()和$ form ['message'] - &gt; getError( ),'message'是表单中的小部件。不要使用$ this,因为它不会在此上下文中保留表单。