我对Yii验证有疑问.我有一个下拉菜单,其选项为Y和N.如果用户选择Y,则用户必须解释为什么选择Y,因此将需要textArea框.
我的规则代码如下.
array(‘explain’,’check’,’trigger’=>’med_effects’),
检查是我用于验证的功能
public function check($attribute, $params)
{
if($this->$params['trigger'] == 0 && $this->$attribute == '') {
$this->addError($attribute, 'Explain the effects of the medicine');
}
}
$this-> $params [‘trigger’]的值不变.我假设是因为保存的值为0(Y),即使用户选择N也不会改变.我应该如何确定用户在对表格进行加位时选择了哪个选项?
谢谢.
解决方法:
public $isDropDownChecked;
并在方法rules()中返回规则数组,如下所示:
public function rules()
{
$rules[] = array();
if ($this->isDropDownChecked == 'Y')
$rules[] = array('explain', 'check', 'trigger'=>'med_effects');
return $rules;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。