dqi*_*qiu 10 inheritance extends model codeigniter
我正在为我的项目使用codeigniter,我有这个类模型,我称之为Genesis,如下所示:
class Genesis_model extends CI_Model {
function __construct() {
parent::__construct();
}
function get() {
return 'human soul';
}
}
Run Code Online (Sandbox Code Playgroud)
我有另一个模型,存储在同一目录中,扩展了Genesis_model
class Human_model extends Genesis_model {
function __construct() {
parent::__construct();
}
function get_human() {
return $this->get();
}
}
Run Code Online (Sandbox Code Playgroud)
Human_model由Human控制器使用
class Human extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('human_model');
}
function get_human() {
$data['human'] = $this->human_model->get_human();
$this->load->view('human/human_interface', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我执行代码,它将产生一个错误,指向返回$ this-> get().它显示"致命错误:在第2行的......\application\models\human_model.php中找不到类'Genesis_model'".
我使用这种方法是因为几乎所有模型都共享几乎相同的结构.我在Genesis中收集了类似的功能,而其他模型仅作为它们所代表的表所特有的数据供应商.它在我的asp.net(vb.net)中运行良好,但我不知道如何在codeigniter中执行此操作.
有没有办法让Human_model继承Genesis_model.我不认为我可以使用include('genesis_model.php').我不知道它是否有效.
提前致谢.
小智 6
如果您的模型只有一个重要的超类,则core/MY_Model很好.
如果要继承超过模型超类,更好的选择是更改自动加载配置.
在application/config/autoload.php中,添加以下行:
$autoload['model'] = array('genesis_model');
Run Code Online (Sandbox Code Playgroud)
将您的 Human_model 更改为:
include('genesis_model.php');
class Human_model extends Genesis_model {
function __construct() {
parent::__construct();
}
function get_human() {
return parent::get();
}
}
Run Code Online (Sandbox Code Playgroud)
注意get_human
函数和include
.
归档时间: |
|
查看次数: |
10177 次 |
最近记录: |