标签搜索

Codeigniter3框架扩展表单验证类以及遇到的坑

basil
2019-09-25 / 300 阅读
  • 扩展方法
    在library文件夹下创建MY_Form_validation.php文件,并继承框架原生表单验证类,注意MY_前缀要跟自定义类前缀一只,不然验证方法不生效

     <?php 
      defined('BASEPATH') OR exit('No direct script access allowed');
      class MY_Form_validation extends CI_Form_validation
      {
          
          function __construct()
          {
              parent::__construct();
          }
      
      
          //验证正整数
          public function positive_integer($number,$param = '')
          {
              $error = 0;
              if (empty($number)||$number=='') {
                  $error++;
              }
              if (!preg_match("/^[1-9]{1}[0-9]*$/",$number)) {
                  $error++;
              }
              if ($error === 0) {
                  return true;
              }else{
                  $this->CI->form_validation->set_message('positive_integer', '{field}格式错误,必须为正整数');
                  return false;
              }
              
          }
      
      }
      
       ?>
  • 遇到的坑
    新建文件的时候把文件名和类名写成了MY_form_validation,在Windows下面可以正确运行扩展的表单验证函数,上传到服务器后就不能运行了,一开始以为是php版本的问题,因为本地是php5.5.9版本,服务器是php5.6.31版本。后来才发现原来是大小写的问题,Linux区分大小写,Windows不区分大小写,所以在Windows下写成MY_form_validation也可以运行。最后,只需要把文件名和类名写成MY_Form_validation方可解决这个问题!
0