用户
 找回密码
 入住 CI 中国社区
搜索
查看: 17907|回复: 22
收起左侧

[HELP] 自定义类库载入问题 MY_Model extends CI_Model

  [复制链接]
发表于 2011-8-11 08:35:19 | 显示全部楼层 |阅读模式
本帖最后由 julia 于 2011-8-11 08:42 编辑

如题,按照手册规则要求,没有查出原因???
//版本 2.0.2 (1.7.2下可以通过)
//错误提示
An Error Was Encountered

Unable to load the requested class: Model

//调用
$this->load->library('model');

//存放Location: application/library/MY_Model.php
class MY_Model extends CI_Model
{

    function __construct()
    {
        parent::__construct() ;//parent::Model(); //CI_Model
               
        }
。。。
}
发表于 2011-8-11 09:01:18 | 显示全部楼层
本帖最后由 visvoy 于 2011-8-11 09:01 编辑

2.0以后要放在application/core/MY_Model.php
 楼主| 发表于 2011-8-11 10:00:07 | 显示全部楼层
新建了个文件夹并将文件保存 application/core/MY_Model.php
//调用问题依旧

$this->load->library('model');

发表于 2011-8-11 10:06:50 | 显示全部楼层
julia 发表于 2011-8-11 10:00
新建了个文件夹并将文件保存 application/core/MY_Model.php
//调用问题依旧

core下面的,不用你自己初始化
 楼主| 发表于 2011-8-11 10:29:10 | 显示全部楼层
//$this->load->library('model'); 处理成不初始化,但无法执行里面的的函数,如
$this->model->load_label();
错误提示
Message: Undefined property: file2:model
发表于 2011-8-11 11:28:00 | 显示全部楼层
MY_Model是扩展CI_Model用的,不用加载,你随便哪个Data_model extends MY_Model
要加载的是->load->model('Data_model')不用加载MY_Model
发表于 2011-8-11 11:33:58 | 显示全部楼层
$this->load->library 你这句话是写那里的哦
感觉上你像是在Controller
调用你自己的 MY_Model 的方法 load_label
如果是在Controller
应该写成$this->load->model这个吧
 楼主| 发表于 2011-8-11 11:46:12 | 显示全部楼层
本帖最后由 julia 于 2011-8-11 11:49 编辑

//在Controller调用某个自定义MY_Model 中函数l
$this->model->my_function();

//错误提示
Message: Undefined property: file2:model

//存放Location: application/corey/MY_Model.php
class MY_Model extends CI_Model
{

    function __construct()
    {
        parent::__construct() ;//parent::Model(); //CI_Model
               
        }
。。。
}
发表于 2011-8-11 11:50:23 | 显示全部楼层
julia 发表于 2011-8-11 11:46
//在Controller调用某个函数
$this->model->my_function();

首先,MY_Model 并不是 Model,这个你要清楚。
其次,MY_Model 是“扩展核心类”的功能,也就是你如果想扩展系统原有 Model 类的功能才需要 MY_Model。
再次,MY_ 开头的都是特殊的类,不能 load

另外,你的需求是什么?
发表于 2011-8-11 11:59:53 | 显示全部楼层
本帖最后由 kunwsk 于 2011-8-11 12:00 编辑

我提一个新问题呢
我新建了一个application/core/MY_Model.php 内容如下
class MY_Model extends CI_Model
{
        public function __construct()
        {
                parent::__construct();
                var_dump('Call Class MY_Model');
        }
}

application/models/news_model .php

class News_model extends MY_Model  
{
        public function __construct()
        {
                parent::__construct();
        }
}

我在Controller 层
class News extends CI_Controller
{
        public function __construct()
        {
                parent::__construct();
                $this->load->model('News_model');
        }
        public function index()
        {
        }
}

当我访问时候页面会出现两次被调用
string(19) "Call Class MY_Model" string(19) "Call Class MY_Model"
这个不知道是我写错了还是其他什么原因

本版积分规则