|
公司的框架是基于CI开发的。用着很舒服。这几天自已搞个东西用的CI,发现很多问题,CI真的很不方便,问题很多。
CI模型中不对载入模型
比如在game_model.php这个模型中不能使用
$this->load->model('test');
这样的方式载入模型,其实是载入成功了。但是不能通过
$this->test->function();
这样调用。报错提示对像不存在。
可以通过
$CI =& get_instance();
$CI->test->function();这样的方式调用
解决方法
在system/libraries/Loader.php的第187行左右加入如下代码即可
$this->_ci_assign_to_models();
这个是调用CI自身的机制将新创建的对像引用到当前所有存在的对像中。
CI这块的代码比较饶。
不知道这是不是CI的BUG,还是说CI本身的格式要求就是不在model中调用model,
个人感觉如果不能在model中调用model那代码量会上升非常多,不同model间的接口和数据传递不能做到,model也真就成了只是处理数据库的一个东西了。程序的继承多态复用也就无从说起。 |
|