sfFormでSymfony 1.4のお話。
PostValidatorのエラーメッセージをどこに出せばいいんだ?という状況で使用できます。
class SomethingInputForm extends BaseForm { public function configure() { // ... $this->validatorSchema->setPostValidator( new sfValidatorCallback(array('callback' => array($this, 'myCallbackFunc'))) ); } public function myCallbackFunc($validator, $values) { // 何かバリデーション if (!($values['input1'] == $values['input2'] == $values['input3'])) { $error = new sfValidatorError($validator, 'error message ...'); throw new sfValidatorErrorSchema($validator, array('input1' => $error)); } return $values; } }
こんな感じで、input1のエラーとして出力できるので、テンプレートのエラー表示が楽になります。