【问题标题】:Extend form validation class and add custom validation rules in codeigniter扩展表单验证类并在codeigniter中添加自定义验证规则
【发布时间】:2012-03-31 10:13:40
【问题描述】:

我正在尝试做的是扩展表单验证类并在那里添加一些自定义验证规则,但由于某些原因,codeigniter 看不到它们中的任何一个......

我在名为 MY_Form_validation.php 的库文件夹中创建了新文件并添加了以下代码:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation {

    function valid_date($str)
    {
        return FALSE;
    }

}

但是validation_errors() 函数永远不会返回任何错误(我已将错误消息存储在配置文件夹中),如果我将valid_date 函数放在控制器中它可以正常工作。有什么想法吗?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    我不知道确切的答案是什么,但我想到了这种可能性,你是在自动加载 my_form_validation 而不是 form_validation?因为如果你加载 form_validation,你的 CI 实例可能不知道你的类?

    【讨论】:

    • 我在控制器中手动加载表单验证类,使用 $this->load->library('form_validation');
    【解决方案2】:

    您需要设置一条消息。

    if(condition)
    {
      return true;
    }
    else
    {
       $this->CI->form_validation->set_message('function_name', 'message');
       return false;
    }
    

    【讨论】:

    • 请先阅读问题。 “我已将错误消息存储在配置文件夹中”
    • 那你为什么不把你的问题贴出来呢?我们可以看看吗?
    【解决方案3】:

    如何更改您的 MY_Form_validation.php 代码,使其具有__construct() 函数并调用父母__construct(),如下所示:

    class MY_Form_validation extends CI_Form_validation {
    
        public function __construct()
        {
            parent::__construct();
        }
    
        public function valid_date($str)
        {
            return FALSE;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-02
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2012-02-27
      • 2012-01-01
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多