2013-07-08 44 views
1

我想延長CI_Model延伸笨基礎模型會導致致命錯誤:類「MY_Model」未找到

./application/core/MY_Model.php 

它:

<?php 

class ModelBasic extends CI_Model 
{ 

} 

?> 

它將不會被這樣的路徑下自動加載除非似乎MY_Model.php的名稱是強制性的。現在我的問題是,當我創建MY_Model.php CodeIgniter期望我有一個名稱爲MY_Model的模型,我想避免。我可以擁有自己的自定義模型名稱而不用僞造類來壓制此錯誤嗎?

Fatal error: Class 'MY_Model' not found in /var/www/CodeIgniter/system/core/Common.php on line 174 

回答

-2

擴展Loader類並重寫該代碼部分。

1

實現無需任何額外的修改命名自己的自定義基礎模型(S)的最快方法是創建文件application/core/MY_Model.php,定義一個空MY_Model類,然後創建自己的自定義類(ES):

class MY_Model extends CI_Model {} 

class ModelBasic extends MY_Model { 

    // Your code here 
} 

// Define more than one if you want. 

class ModelComplicated extends MY_Model { 

    // Your code here 
} 

其他選項包括:

  1. 擴展Loader類,並更換model()方法與自己的修改版本。這可能很複雜(我還沒有完全探究),因爲實際的錯誤發生在system/core/Common.php :: load_class()中,在模型的例子中,它實例化了基本的CI_Model類,以及如果MY_Model找到一個(它是它會像其他基類一樣默認自動查找)。

  2. 創建/添加一個遵循自己的加載核心類的規則的自動加載器(如果您嘗試自動加載的不僅僅是模型 - 這取決於您想如何設置應用程序)。

相關問題