holyrain 2012-11-02 14:46:31 2888次浏览 4条回复 0 0 0

想用同一个验证方法validateMethod(),根据参数的不同值true or false,来指定类似但是不同的验证规则。 代码如下

array('name','validateMethod','on'=>'scenario1','params'=>array(true)),
array('name','validateMethod','on'=>'scenario2','params'=>array(false)),

为什么不生效?

  • 回复于 2012-11-03 12:44 举报

    发出validateMethod方法来看看。

  • 回复于 2012-11-07 13:31 举报
    public function validateMethod($isNew = false){
        $this->addError( $isNew?'new':'old','error message'); 
    }
    
  • 回复于 2012-11-07 13:49 举报

    已经解决了,yii框架CInlineValidator调用自定义验证方法的函数如下

    protected function validateAttribute($object,$attribute)
    {
        $method=$this->method;
        $object->$method($attribute,$this->params);
    }
    

    第一个参数是属性名
    所以我只需往validateMethod()方法多加一个参数$attribute,即可根据不同属性名,进行不同处理

    public function validateMethod($attribute){
        $this->addError( $attribute,"{$attribute} error message"); 
    }
    

    谢谢版主关心

  • 回复于 2012-11-07 14:27 举报

    顶一个!!!!!!!

您需要登录后才可以回复。登录 | 立即注册