Yii需要根据条件进行验证

时间:2014-03-05 06:22:15

标签: javascript php jquery yii

我想根据Yii模型中的条件验证字段。

我在视图中有两个字段

type(radiobutton):标准&特别

term(textfield):任何文本数据

当前我根据类型条件显示术语文本框,即如果类型是特殊的,则显示o / w hide。

我想使用Yii必需规则来验证它,如果用户选择单选按钮特殊,那么他必须填写术语文本字段数据,而不是必须填写。

如果我使用特殊需要,那么在type = standard的情况下验证是错误的。我已经做了以下自定义验证,但它无法正常工作。

public function rules() {
     array('type', 'required'),
     array('term', 'checkTerm', 'trigger' => 'type'),
}

public function checkTerm($attribute, $params) {        
     if ($this->$params['trigger'] == "Special") {
        if (empty($attribute))
           $this->addError($attribute, 'Special term cannot be blank.');
     }
}

我哪里错了?需要帮忙。感谢

2 个答案:

答案 0 :(得分:3)

试试这个:

public function rules() {
     array('type', 'required'),
     array('term', 'checkTerm'),
}

public function checkTerm() {        
     if ($this->type == "Special") {
        if (empty($this->term))
           $this->addError("term", 'Special term cannot be blank.');
     }
}

答案 1 :(得分:1)

而不是

 if (empty($attribute))
       $this->addError($attribute, 'Special term cannot be blank.');
 }

使用

 if (empty($this->term))
       $this->addError($attribute, 'Special term cannot be blank.');
 }