2012-10-21 55 views
0

我想解決的主要問題是在有人想要訪問管理面板時檢查用戶會話。我創建了MY_Controller類並將其放置在庫中。找不到MY_Controller類

class MY_Controller extends CI_Session { 

public $logged_in = FALSE; 

public function __construct() { 
    parent::__construct(); 
    $this->is_logged_in(); 
} 

public function is_logged_in() 
{ 
    $logged = $this->userdata('user_id'); 
    $this->logged_in = ($logged) ? TRUE : FALSE; 
} 

function sessdestroy() { 

    $this->session->sess_destroy(); 

} 

} 

這是我的登錄頁面。我創建了一個重定向到管理面板(儀表板)的按鈕,只是爲了測試會話檢查是否有效。

class Login extends CI_Controller { 

function __construct() { 

    parent::__construct(); 

} 

public function index() { 

    $this->load->view('view_login'); 

    if(isset($_POST['redirect'])) { 

    redirect('admin'); 

    } 
} 


} 

這是我檢查用戶會話是否存在的管理員控制器。

class Admin extends MY_Controller { 

function construct() { 

    parent::__construct(); 

} 


function index() { 

    if($this->is_logged_in()) { 

    $this->dodadi_destinacija(); 

    } 

    else redirect('login'); 

} 

} 

但是我得到了這個錯誤。

Fatal error: Class 'MY_Controller' not found in C:\wamp\www\UserPanel\application\controllers\admin.php on line 3 

你能告訴我你的想法有關爲給定的問題我的編碼解決方案請:)

回答

1

笨引入了一個名爲core新的文件夾,不需要加載生活的庫。原來的CI_Controller類就是其中之一,所以如果你想讓automagick拿起你的MY_Controller.php文件,你應該把它放在application/core之下。

如有疑問,請在system目錄下查看擴展課程的原始版本,並在application下進行鏡像。

(也用你的第一個代碼示例中,我覺得你的意思延長CI_Controller沒有CI_Session

7
  1. 您需要延長的,而不是CI_Session
  2. CI_Controller類應該將MY_Controllerapplication/core/文件夾而不是application/library
1

我在學習CodeIgniter時遇到了項目上的這個錯誤。我的解決方案是,以您的項目爲例,require_once('MY_Controller');位於我的新控制器的頂部。

這樣我就不必將文件移動到核心,我可以將它保存在我的控制器目錄中。