sfFormのvalidatorで引っかかったエラーメッセージを全部取得
いろいろあって、sfFormはvalidatorのみ使用(widgetはほぼ自動で挿入される_csrf_token的なものでしか使用しない)、という方針で開発をすることがあるのですが、その際のエラーメッセージの取り出し方について一旦たどりついた結論です。
$this->form = new HogehogeForm(); $this->form->bind($request->getPostParameters()); if (!$this->form->isValid()) { $error_messages = array_map( create_function('$e', 'return $e->getMessage();'), $this->form->getErrorSchema()->getErrors());
{sfForm}->getErrorSchema()->getErrors(); で、バリデーションに引っかかったすべてのエラーをsfValidatorError(Exceptionのサブクラス) の配列として取得できるようなので、これを利用してみました。myFormクラスに書いておいたほうがよいかもとか、そもそもこれでいいのかという気もするので、もうちょっと検討します。