用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2556|回复: 6
收起左侧

libraries\Loader. 出现错误

[复制链接]
发表于 2009-4-13 15:13:59 | 显示全部楼层 |阅读模式
我在一个controller中 load->controller(),导入另外一个controller的时候,
比如,我在inc.php中,include_once('models_addresses.php');
再$a = new models_addresses();
就出现了错误:
Call to a member function _assign_libraries() on a non-object in D:\projects\gene24\web\doc-root\system\libraries\Loader.php on line 1038.

请问这个问题是什么原因?


谢谢各位.
发表于 2009-4-13 16:00:49 | 显示全部楼层
没看明白。
但一个控制器不能调用另一个控制器。
发表于 2009-4-13 16:06:20 | 显示全部楼层
我已经说过多次了,CI 中控制器不能调用另外的控制器,有这种需求的,请从设计角度重新修改项目架构。
或者,扩展 CI,而不能简单的 load 完事,那是不可能的。
 楼主| 发表于 2009-4-13 16:42:57 | 显示全部楼层
谢谢你们的好意见,但是这个问题必须得用调用controller的函数.
我的方法是:
include_once('models_users.php');
               
$class= new ReflectionClass('models_users');
// echo $class;
               
$methods = array();
foreach ($class->getMethods() as $method)
{
        $methods[] = $method->getName();
}
var_dump($methods);
就取得了例外一个函数的方法.
发表于 2009-4-13 16:51:35 | 显示全部楼层
为什么不把控制器里的方法做成 library ?
发表于 2009-4-13 16:53:35 | 显示全部楼层
你要被多个控制器调用的东西应该做成模型
我觉得CI手册里把模型只作为数据表操作用是比较简单的,模型作用可以很丰富
 楼主| 发表于 2009-4-13 17:00:27 | 显示全部楼层
Hex提得很好, will的意见也不错.
我很赞同做成library, 我向我上司提提意见.
谢谢你们的宝贵建议.

本版积分规则