Yii自定义验证

时间:2013-08-01 14:57:44

标签: model yii

我有一个带有自定义验证的模型

class RegisterForm extends CFormModel
{

   public $codiceMembro;
   //...some more attributes

   //validation
   public function rules()
   {
     return array(
       array('codiceMembro', 'codiceODataNascita'),
       //...some more rules
     );
   }


   // Declares attribute labels.
   public function attributeLabels()
   {
     return array(
    'codiceMembro'=>"a description",
        //...some more labels
     );
   }

   //My own custom validate function, always error for it
   public function codiceODataNascita($attribute, $params){   
      $this->addError('codiceMembro','a bad message');  
   }

   //...other model stuff
}

然后在视图中,我在这里插入模型

<?php
$model=new RegisterForm;
$form=$this->beginWidget('CActiveForm', array(
    'id'=>'register-form',
    'enableClientValidation'=>true,
    'clientOptions'=>array(
    'validateOnSubmit'=>true,
    ),
));
?>
<div class="row">
  <?php echo $form->label($model, 'codiceMembro'); ?>
  <?php echo $form->textField($model, 'codiceMembro');?>
  <?php echo $form->error($model,'codiceMembro'); ?>
</div>
//...so on till the end of the code

我期望无论我输入什么,我都会收到错误消息

相反,对于此代码,所有内容都被验证为OK

1 个答案:

答案 0 :(得分:3)

如果您希望自定义验证程序支持客户端验证,则需要通过扩展CValidator来创建自定义验证程序类。这是一个wiki页面,详细说明了如何执行此操作:http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/#hh1