0

我在MY_Form_validation类上编写了一个验证规则,application -> library folder 如下所示..

public function doc_uploaded($field,$types)
    {
            $types=explode(',',$types);
            $upload = $this->CI->lang->line('upload');
            if(isset($_FILES[$field]) && !empty($_FILES[$field]['name']))
            {
                if(!function_exists('file_upload')){ $this->CI->load->helper('MY_file_helper'); }
                 $status = file_upload(($field),$_FILES[$field], captcha_path(),$types);

           if($status >0 or strlen($status) > 2 )
            {
                return TRUE;
            }
            elseif(is_array($status))
            {
                $this->CI->_error_array[$field] = $status[0];
                $this->CI->_error_array[$field] = $status[0];
                $this->_error_array[$field]=sprintf( $upload,$this->_translate_fieldname($this->_field_data[$field]['label']));
               // echo $field,  print_r($this->_error_array);
             // print_r($this->CI->_error_array);die();
                return FALSE;
            }
            else
            {
                $this->_error_array[$field] = $status[0];
                return FALSE;
            }
        }
        else
        {
            return FALSE;
        }
}

我正在从控制器设置验证规则如下

$this->form_validation->set_rules('resume', 'Resume', 'required|doc_uploaded[pdf,doc,docx,odt,txt,ppt,pptx]');
$_POST['resume'] ='resume';

现在这个工作正常,除了错误按摩:

无法访问与您的字段名称 Resume 对应的错误消息。(doc_uploaded)

必须是一种解决方法,请帮助。我使用 1.4

4

1 回答 1

0

代替

$this->_error_array[$field] = $status[0];

使用

$this->CI->form_validation->set_message('doc_uploaded',$status[0]);

解决了这个问题

于 2018-07-12T12:34:53.857 回答