class MyForm extends BaseForm { public function configure() { $this->getValidatorSchema()->setPostValidator( new sfValidatorCallback(array('callback' => array($this, 'validateCount'))) ); } }
// MyForm class public function validateCount(sfValidatorBase $validator, $values) { // hogehogeフィールドのエラーとして通知する if ($values['hogehoge_count'] == 0) { $errors = array( 'hogehoge' => new sfValidatorError($validator, 'hogehoge countがゼロです!') ); throw new sfValidatorErrorSchema($validator, $errors); } // グローバルエラーとして通知する if ($values['hogehoge_count'] > 100) { throw new sfValidatorError($validator, 'hogehoge count が100を超えています!'); } return $values; }
<?php echo $form->renderGlobalErrors() ?> <?php echo $form['hogehoge']->renderError() ?>Tweet