Hex
发表于 2011-8-11 12:02:01
kunwsk 发表于 2011-8-11 11:59 static/image/common/back.gif
我提一个新问题呢
我新建了一个application/core/MY_Model.php 内容如下
class MY_Model extends CI_Model
是的,就是这样的,CI 会实例化每一个类,所以会调用两次。
不过这好像没什么大问题。
PS: 有时候确实需要实例化类以后再做其他操作。
julia
发表于 2011-8-11 12:22:12
本帖最后由 julia 于 2011-8-11 13:10 编辑
修改了文件名为 model2.php,虽然通过调用使用正常,但不符合自定义扩展规则
//在Controller调用某个自定义Model2 中函数l调用
$this->load->library('model2');
$this->model2->my_function();
//存放Location: application/library/Model2.php
class Model2 extends CI_Model //自定义+扩展 通过,但不符合扩展规则
{
function __construct()
{
parent::__construct() ;
}
。。。
}
//自定义无法通过
class Model2
{
function __construct()
{
parent::__construct() ;
}
。。。
}
//扩展无法通过
class MY_Model extends CI_Model //CI_Model
{
function __construct()
{
parent::__construct() ;
julia
发表于 2011-8-11 12:46:06
本帖最后由 julia 于 2011-8-11 13:59 编辑
是否需要load,根据文件存放位置,例如MY_Model.php 2.0以后版本两种方式
1---------------------Location: application/library/MY_Model.php
创建类库 ----- 规则和调用方式
http://codeigniter.org.cn/user_g ... ting_libraries.html
2 ---------------------Location: application/core/MY_Model.php (事实上model并不在核心列表中,也许是讲错就错)
扩展核心类 ----- 规则和调用方式
http://codeigniter.org.cn/user_guide/general/core_classes.html这里的核心列表也许漏了model
2种方式均试无效,第一种方式在1.7.2中通过
Hex
发表于 2011-8-11 12:53:00
julia 发表于 2011-8-11 12:46 static/image/common/back.gif
是否需要load,根据文件存放位置,例如MY_Model.php 2.0以后版本两种方式
1---------------------Location ...
不知道你想实现什么功能呢?
MY_ 是由特殊意义的,不能随意加
julia
发表于 2011-8-11 13:04:39
Hex 发表于 2011-8-11 12:53 static/image/common/back.gif
不知道你想实现什么功能呢?
MY_ 是由特殊意义的,不能随意加
我的目的是将通用的model扩展到MY_Model中,方便其它Controller调用。
这个文件以前在1.7.2中使用正常,但在2.0.2中遇到麻烦?
无论我用扩展还是自定义的规则处理,均无法通过。
但我用自定义+扩展语法,却能通过,十分奇怪?
Hex
发表于 2011-8-11 13:18:23
julia 发表于 2011-8-11 13:04 static/image/common/back.gif
我的目的是将通用的model扩展到MY_Model中,方便其它Controller调用。
这个文件以前在1.7.2中使用正常,但 ...
在 core 下建立 MY_Model,然后 extends CI_Model,
然后在 model 目录下建立普通 model,Xxx_model extends MY_Model
然后在控制器里 $this->load->model('Xxx_model'); $this->Xxx_model->xxx();
按照以上的方式不行?如果不行那就是 CI 的 BUG
julia
发表于 2011-8-11 13:27:44
Hex 发表于 2011-8-11 13:18 static/image/common/back.gif
在 core 下建立 MY_Model,然后 extends CI_Model,
然后在 model 目录下建立普通 model,Xxx_model exten ...
试了 N 种方法,
符合规则的 无法通过;
通过的 不符合规则。
想必是CI 的 BUG
jeongee
发表于 2011-8-11 13:30:45
本帖最后由 jeongee 于 2011-8-11 13:33 编辑
julia 发表于 2011-8-11 12:46 static/image/common/back.gif
是否需要load,根据文件存放位置,例如MY_Model.php 2.0以后版本两种方式
1---------------------Location ...
谁说model不属于core的啊,你去看system/core下面是否有Model.php
核心类和普通类的扩展是一样的,只要放对位置就可以了,我扩展过model,并没出现你的这个问题,想必还是用的不得当吧
并且扩展的类的用法与原类用法一样,比如你扩展了表单验证类
MY_Form_validate使用的时候依然是$this->load->library('form_validate');而不是$this->load->library('MY_form_validate');
另,核心类不需要自己load。
julia
发表于 2011-8-11 13:39:10
本帖最后由 julia 于 2011-8-11 13:40 编辑
可以立即测试上面第12 楼的代码,如果在你的机器上通过,说明我的系统问题???
julia
发表于 2011-8-11 14:00:50
jeongee 发表于 2011-8-11 13:30 static/image/common/back.gif
谁说model不属于core的啊,你去看system/core下面是否有Model.php
核心类和普通类的扩展是一样的,只要放 ...
http://codeigniter.org.cn/user_guide/general/core_classes.html 它说得核心列表里没有model