我的codeigniter回调不起作用

时间:2015-09-13 04:16:52

标签: php codeigniter

我在控制器中的代码是

 $this->form_validation->set_rules('periodStartFrom','Salary Period StartFrom', 'trim|required|callback_dateValidate');

if($this->form_validation->run() == FALSE ) 
        {
            $this->load->view('pages/salary_period');
        }        
        else
        {}

我的自定义formvalidation文件是:

class MY_Form_validation extends CI_Form_validation {

public function __construct() {
parent::__construct();

  }

public function dateValidate($date) 
{

    $rgexp = '/(^(((0[1-9]|[12][0-8])[.](0[1-9]|1[012]))|((29|30|31)[.]   (0[13578]|1[02]))|((29|30)[.](0[4,6,9]|11)))[.](19|[2-9][0-9])\d\d$)|(^29[.]02[.](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)/'   ;
if(preg_match($rgexp,$date) === 1)
        {
            return TRUE;
        }
            else{return FALSE;}                
 }
 }

在控制器构造函数中加载MY_Form_validation:

$this->load->library('My_Form_validation');

问题是当我在控制器中编写函数dateValidate时,它可以工作,我没有在MY_Form_validation中工作。每次都显示我在form_validation_lang.php

中设置的错误消息

我无法找到问题所在。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

在MY_Form_Validation中定义它们时,请删除'callback_',如:

$this->form_validation->set_rules('periodStartFrom','Salary Period StartFrom', 'trim|required|dateValidate');

另一方面,加载没有MY_的Form_validation库。 MY_将自行加载。

$this->load->library('Form_validation');