2017-09-15 220 views
0

我在我的核心文件夾中,2個控制器:擴展CodeIgniter的核心類

  1. MY_Controller
  2. MY_AdminController

都擴展是CI_Controller。首先一個偉大的工程,但第二個沒有,當我打電話是從MY_AdminController繼承控制器我得到一個錯誤:

Fatal error: Class 'MY_AdminController' not found 

做一些研究,我發現後:

https://codeigniter.com/user_guide/general/core_classes.html 

在該文獻說你使用「MY_」前綴(可以在配置中改變它)擴展核心類,我這樣做。

我錯過了什麼?

UPDATE 我想知道如果這個問題是因爲自從我創建一個文件中的「核心」文件夾中,CI檢查,如果它確實存在原稿放在自己的核心名稱相同但前綴CI?

+0

確保您的文件名級應用核心匹配/ MY_Admincontroller.php – user4419336

+0

@ wolfgang1983感謝您的回答。我編輯了我的問題,這是一個錯字,在我的代碼上,我有類名相同的文件名 – Eduardo

+0

沒有CI_Admincontroller,所以你不能擴展那些不存在的東西。 –

回答

1

這裏是a good explanation至於爲什麼你不能按照你所描述的方式去做。本質上CodeIgniter尋找['subclass_prefix'] . $Classname,例如'MY_' . 'Controller'。這裏是CI2

解決同一個問題:
把這兩樣MY_ControllerMY_AdminControllerMY_Controller.php

MY_Controller.php

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

    ... 
} 

class MY_AdminController extends CI_Controller { 
    public function __construct() { 
     parent::__construct(); 
    } 

    ... 
} 
+1

我會盡力。不包括同一文件中的類,但在其中使用require,我喜歡保持控制器文件可見。 – Eduardo

+0

好主意,每個文件一個類是最好的 – Nick

+0

我發佈了另一個問題,也許你可以幫助:https://stackoverflow.com/questions/46368601/loading-view-inside-a-library-issues-with-cached-vars – Eduardo