0

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

1.扩展CI_Form_validation:

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

    class MY_Form_validation extends CI_Form_validation {

    public $CI;

    }

?>
  1. 在我的控制器中:

类用户扩展 MX_Controller {

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

}

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

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

控制器再次正常运行。

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

4

1 回答 1

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)// 但我不明白你为什么要这样做.

于 2012-12-01T03:09:23.263 回答