tottyandbaty 发表于 2009-6-29 15:32:50

CI 的model的疑问

我写了2个model,他们都有共同的属性$table,我在一个control中加载了这2个model,却发生冲突,后面的一个将前面的覆盖了,何解?

Class Model1 extends Model
{
    public $table;

/***/

}

class Mode2 extends Model{
public $table;

}

Hex 发表于 2009-6-29 16:04:49

这不太可能吧!

PHP 没这种语法啊。呵呵

看一下你的控制器代码?

tottyandbaty 发表于 2009-6-29 16:19:50

class Mode extends Model
{
public $table;
function __construct()
{
parent::__construct();
}
}
class Mode2 extends Model
{
public $table;
function __construct()
{
parent::__construct();
}
}

control


class Blog extends Controller
{
function Blog(){
parent::Controller();
$this->load->model("mode");
$this->load->model("mode2");
}

}

Hex 发表于 2009-6-29 16:43:32

parent::__construct(); 这个错了,CI 的 Model 里没有 __construct(); 只有 Model();

装载模型应是 $this->load->model("Mode"); $this->load->model("Mode2");

tottyandbaty 发表于 2009-6-29 16:47:26

parent::__construct();这样写也没有错 ,我将mode这个基类修改了,让他同时兼容php5和php4,model加载了,但是两个model 中同名的属性却冲突了,不知道为这么

Hex 发表于 2009-6-29 16:49:52

你修改的是源代码,还是扩展的 Model 类?

你是怎么发现冲突的?

Hex 发表于 2009-6-29 16:56:35

经过我测试,不存在冲突问题,我根据你的代码创建了两个模型,然后在控制器里反复设置 $table 的值,然后 ECHO,没有发现异常。

tottyandbaty 发表于 2009-6-29 16:57:08

我写了2个model,一个叫Artical,一个叫Photo,这个$table,是用来设置要读取的表的,然后写了 个Blog的controll,分别装载了这2个model,当我在Blog这个Controll中调用Artical的一个方法的时候,发现返回的是Photo中表的数据,这个方法就是返回某个表中所有的内容,后来才发现Artical的$table属性将前面的覆盖了

tottyandbaty 发表于 2009-6-29 16:57:23

就是修改的源代码

Hex 发表于 2009-6-29 17:00:27

经过我再次根据你描述的情况做的测试,结果也是不冲突,没有任何异常。

你看一下是不是哪里写混了。
页: [1] 2
查看完整版本: CI 的model的疑问