Codeigniter HMVC验证回调出错

时间:2012-11-30 07:23:56

标签: php codeigniter

我正在使用Codeigniter和HMVC。 当我验证表单时,我使用解决方案来修复HMVC中的回调问题:

1.Extends CI_Form_validation:

<?php
    // application/libraries/My_Form_validation.php

    class MY_Form_validation extends CI_Form_validation {

    public $CI;

    }

?>
  1. 在我的控制器中:
  2. 类用户扩展MX_Controller {

    function __construct() {
        parent :: __construct();
        $this->load->library('form_validation');
        $this->form_validation->CI = & $this;
    
    }
    

    我的问题是:在我的localhost中,一切正常:回调验证正常运行。但是当我在主机上传我的项目时,我执行我的控制器它显示为空白。当我评论该行

     //$this->form_validation->CI = & $this;
    

    控制器再次正常运行。

    你能告诉我怎么解决这个问题吗? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

检查错误日志中是否有任何致命错误,您也应该以这种方式扩展表单验证

    class MY_Form_validation extends CI_Form_validation {
       private $CI

      function My_Form_validation($config = array()) {

        parent::__construct($config); 
        $this->CI = &get_instance()

    }

   //example functions
  function my_custom_validation(str){ //or override , for example, required
      if($this->CI->method_from_instance()){
        return true;
       }
     return false
  }

}

然后像往常一样使用form_validation,但现在你有额外的规则my_custom_validation

编辑:如果您有任何机会并出于某些有线原因想要在库中使用控制器功能(也就是$ this),请将其作为配置传递,一旦您加载库,例如$this->load->library('form_validation', array(('ci'=>$this) //但我不明白你为什么要这样做。