加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在CodeIgniter中扩展模型

发布时间:2020-12-13 21:58:20 所属栏目:PHP教程 来源:网络整理
导读:好吧,我是CodeIgniter Framework的新手,我正在尝试构建一个通用的Model Class.看到: class Basic_Model extends CI_MODEL { function __construct() { // Call the Model constructor parent::__construct(); }} 我想基于Basic_Model扩展所有模型,如下所示
好吧,我是CodeIgniter Framework的新手,我正在尝试构建一个通用的Model Class.看到:

class Basic_Model extends CI_MODEL {

    function __construct() {
        // Call the Model constructor
        parent::__construct();
    }

}

我想基于Basic_Model扩展所有模型,如下所示:

class Pagina_Model extends Basic_Model {

    function __construct() {
        // Call the Model constructor
        parent::__construct();
    }

}

问题是当我尝试从Controller调用“pagina_model”时出现以下错误:

Fatal error: Class 'Basic_Model' not found in /var/www/myproject/application/models/pagina_model.php on line 12

如果我在控制器中使用“basic_model”一切正常.

编辑1:

我在“/ application / core”中创建了一个名为MY_Basic_Model.php的文件,并将类名更改为“MY_Basic_Model”.但我得到了错误:

Fatal error: Class 'MY_Basic_Model' not found in /var/www/myproject/application/models/pagina_model.php on line 12

解决方法

为此,您必须创建Core System Classes(这也称为Method Overriding).

在application / core /目录中创建一个文件MY_Model.php,它将扩展基本CI_Model类:

<?php
class MY_Model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }
}

现在您可以在模型中扩展它(../applicaton/models/):

<?php
class Pagina_Model extends MY_Model {

    function __construct()
    {
        parent::__construct();
    }
}

这里有几点需要注意:
1)类声明必须扩展父类.
2)您的新班级名称和文件名必须以MY_为前缀(此项目是可配置的).

如何配置:
要设置自己的子类前缀,请打开application / config / config.php文件并查找此项:

$config['subclass_prefix'] = 'MY_';

文档:
https://ellislab.com/codeigniter/user-guide/general/core_classes.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读