微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-Yii条件验证

我对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] 举报,一经查实,本站将立刻删除。

相关推荐