yii model中自定义一个validate rule
public function rules() { return array( array('bc_number,call_ring_timeout,circle_times', 'required'), array('bc_number', 'numerical'), array('bc_number,call_ring_timeout, circle_times', 'numerical', 'integerOnly'=>true), array('bc_number, bc_name', 'length', 'max'=>200), array('number_list', 'length', 'max'=>255), // array('bc_number','exist','allowEmpty' => false), array('bc_number', 'checkBCNumber','message'=>'Test message for {attribute} validation'), array('id, bc_number, bc_name, call_ring_timeout, circle_times, number_list', 'safe', 'on'=>'search'), ); } public function checkBCNumber($attribute,$params){ $model=BroadcastGroup::model()->findByAttributes(array('bc_number'=>$this->bc_number)); if(!empty($model)){ $this->addError($attribute, $params['message']); } }
$model->save() 和 $model->validate()将顺序执行这些rules,如果不通过,刚在<?php echo $form->errorSummary($model); ?>显示出来。