CodeIgniter 中英文搜索引擎:
返回列表 发帖

CI 的model的疑问

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

Class Model1 extends Model
{
    public $table;

/***/

}

class Mode2 extends Model{
public $table;

}

这不太可能吧!

PHP 没这种语法啊。呵呵

看一下你的控制器代码?
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

PHP
class Mode extends Model
{
public $table;
function __construct()
{
  parent::__construct();
}
}
class Mode2 extends Model
{
public $table;
function __construct()
{
  parent::__construct();
}
}
 
复制代码

control

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

TOP

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

装载模型应是 $this->load->model("Mode"); $this->load->model("Mode2");
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

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

TOP

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

你是怎么发现冲突的?
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

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

TOP

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

TOP

就是修改的源代码

TOP

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

你看一下是不是哪里写混了。
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

返回列表