2011-07-15 54 views
0

我想擴展CodeIgniter控制器。我創建MY_Controller.php文件,該文件的內容如下:擴展CodeIgniter控制器錯誤

<?php 
class MY_Controller extends CI_Controller 
{ 
    function generate_key() 
    { 
     $n = rand(10e16, 10e20); 
     return base_convert($n, 10, 36); 
    } 

現在我通過擴大MY_Controller代替CI_Controller創建我的控制器。下面是一個控制器的一個示例:

class Member extends MY_Controller 
{ 
    public function index() 
    { 
    $this->load->view('welcome'); 
    } 

我已放置在文件MY_Controller.phpApplication/libraries/文件夾中。但是當我加載應用程序,我得到的錯誤:

Fatal error: Class 'MY_Controller' not found in path\to\application\controllers\member.php 

有人可以告訴我我做錯了什麼?謝謝。

編輯:我使用的是笨2.0.2

+0

您使用的是哪個版本的CI? – Sukumar

+0

CodeIgniter 2.0.2 – Roman

回答

3

您需要application/core創建MY_Controller.php。我嘗試了你的設置並得到了同樣的問題。將自定義控制器移動到core解決了問題。

希望它有幫助!在Windows

`Fatal error: Class 'MY_Controller' not found ...` 

發佈到我的遠程Linux服務器(Dreamhost的),而不是在本地:

4

我一直在這個問題上。問題在於Linux是區分大小寫的:我的MY_Controller.php是一個小寫的c,它不是自動加載的。

萬一別人有同樣的問題:)

+0

我也有這個,在Mac上本地工作,但在部署到Linux服務器時失敗。 –

1

我有這樣的問題,一些搜索,我發現錯誤是自己做的,因爲我的控制器類名是MY_Controller但文件名是My_Controller [案例後不匹配]。注意: - 在本地主機,我沒有任何錯誤。

在擴展控制器I使用

class Home extends MY_Controller{ 
function __construct() { 
parent::__construct(); 
} 
} 

即使我得到了錯誤。

將我的文件名更改爲MY_Controller後,它開始運行良好。

MY_contrller放置在應用程序/核心文件夾中。

+0

對於有問題的人,但是他們正在遵循正確的目錄列表/實踐^這是答案。檢查這些案件! –