2016-08-10 14:42:07 3079次浏览 3条回答 1 悬赏 70 金钱

哪位大神懂yii2自定义验证规则的:
比如数据表字段中判断最大值不能小于最小值,

     public function validateMultipleax_credits($attribute, $params) 
{
    if([$this->max_credits] >= [$this->min_credits]) {
        return $this->max_credits;
    }  
    return $this->min_credits;
}

请问我是哪里错了?

最佳答案

  • xczizz 发布于 2016-08-10 15:00 举报
    [['max_credits','min_credits'],'require'],
    [['max_credits'], 'validateMultipleax_credits'],
    
    
    public function validateMultipleax_credits($attribute, $params) 
    {
        if($this->max_credits < $this->min_credits) {
           $this->addError($attribute, "最大值不能小于最小值");
        }  
    }
    
    2 条回复
    回复于 2016-08-10 15:36 回复

    请问方法里面$attribute, $params有什么作用 感觉没用到

    回复于 2016-08-10 16:29 回复

    文档中给出的定义是 $params refers to validation parameters given in the rule,大概意思估计就是要验证的参数集,比如你可以使用$this->min_credits来获取到你的 min_credits 。$attribute自然就是当前要验证的属性了。具体你可以查看手册源码:yii2\base\Model.php 里面关于function rules()的介绍

您需要登录后才可以回答。登录 | 立即注册
superphp
见习主管

superphp

注册时间:2015-08-31
最后登录:2016-08-16
在线时长:5小时39分
  • 粉丝8
  • 金钱370
  • 威望0
  • 积分420

热门问题