CI 的model的疑问
我写了2个model,他们都有共同的属性$table,我在一个control中加载了这2个model,却发生冲突,后面的一个将前面的覆盖了,何解?Class Model1 extends Model
{
public $table;
/***/
}
class Mode2 extends Model{
public $table;
} 这不太可能吧!
PHP 没这种语法啊。呵呵
看一下你的控制器代码? 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");
}
}
parent::__construct(); 这个错了,CI 的 Model 里没有 __construct(); 只有 Model();
装载模型应是 $this->load->model("Mode"); $this->load->model("Mode2"); parent::__construct();这样写也没有错 ,我将mode这个基类修改了,让他同时兼容php5和php4,model加载了,但是两个model 中同名的属性却冲突了,不知道为这么 你修改的是源代码,还是扩展的 Model 类?
你是怎么发现冲突的? 经过我测试,不存在冲突问题,我根据你的代码创建了两个模型,然后在控制器里反复设置 $table 的值,然后 ECHO,没有发现异常。 我写了2个model,一个叫Artical,一个叫Photo,这个$table,是用来设置要读取的表的,然后写了 个Blog的controll,分别装载了这2个model,当我在Blog这个Controll中调用Artical的一个方法的时候,发现返回的是Photo中表的数据,这个方法就是返回某个表中所有的内容,后来才发现Artical的$table属性将前面的覆盖了 就是修改的源代码 经过我再次根据你描述的情况做的测试,结果也是不冲突,没有任何异常。
你看一下是不是哪里写混了。
页:
[1]
2