我想根据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.');
}
}
我哪里错了?需要帮忙。感谢
答案 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.');
}