2012-11-30 35 views
0

我正在使用HMVC的Codeigniter。 當驗證我的形式,我使用該解決方案來解決在HMVC回調問題:Codeigniter HMVC驗證回調出錯

1.Extends 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; 

控制器再次正常運行。

你能告訴我如何解決這個問題嗎? 感謝您的幫助。

+2

空白頁通常是一個致命錯誤,告訴我們錯誤日誌中的錯誤。 – MrCode

回答

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) //但我不明白你爲什麼要這麼做。