2015-10-12 14:58:01 16232次浏览 3条回答 4 悬赏 11 金钱

现在我有一个搜索表单,其中有两个属性分别为attr1和attr2,只有当这两个属性的一个属性存在或者都存在的情况下才能执行搜索功能,请问各位大虾这个规则在model中的rules中如何写呢?

最佳答案

  • b31o8321 发布于 2015-10-12 16:33 举报
    public function rules(){
        return [
            ['attr1',checkAttr1Attr2, 'skipError' => false, 'skipEmpty' => false],
        ];
    }
    
    public function checkAttr1Attr2(){
        if(empty($this->attr1) && empty($this->attr2)){
             $this->addError('attr1','attr1 & attr2 must ........');
        }
        return true;
    }
    

    我是这样实现的,感觉有些繁琐,同求简洁的解决方案

  • 回答于 2015-10-12 19:54 举报
    [
        'attr1',
        'string or int or else rules you need',
        'when' => function($model) {
            return $model->attr1 || $model->attr2;
        },
        'message' => ' your error tips'
    ]
    
    
    1 条回复
    回复于 2016-08-08 11:08 回复

    请问一下,上面这段代码是不是可以用在验证两个字段不全为空?

    , , 觉得很赞
  • 回答于 2015-11-06 12:03 举报

    你可以看下yii2.0的验证规则啊

您需要登录后才可以回答。登录 | 立即注册
tyx
职场新人

tyx

注册时间:2015-09-18
最后登录:2016-08-11
在线时长:3小时3分
  • 粉丝1
  • 金钱49
  • 威望0
  • 积分79

热门问题