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のエラーとして出力できるので、テンプレートのエラー表示が楽になります。

HOMMA Teppei

