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); ?>显示出来。

 

posted @ 2014-08-24 21:42  haishi633  阅读(233)  评论(0编辑  收藏  举报