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() である必要があります。 ' はフォーム内のウィジェットです。このコンテキストではフォームを保持しないため、$this は使用しないでください。

于 2010-04-18T20:05:18.620 に答える