pestleihui 发表于 2009-4-13 15:13:59

libraries\Loader. 出现错误

我在一个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.

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


谢谢各位.

yuwen002 发表于 2009-4-13 16:00:49

没看明白。
但一个控制器不能调用另一个控制器。

Hex 发表于 2009-4-13 16:06:20

我已经说过多次了,CI 中控制器不能调用另外的控制器,有这种需求的,请从设计角度重新修改项目架构。
或者,扩展 CI,而不能简单的 load 完事,那是不可能的。

pestleihui 发表于 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);
就取得了例外一个函数的方法.

Hex 发表于 2009-4-13 16:51:35

为什么不把控制器里的方法做成 library ?

will 发表于 2009-4-13 16:53:35

你要被多个控制器调用的东西应该做成模型
我觉得CI手册里把模型只作为数据表操作用是比较简单的,模型作用可以很丰富

pestleihui 发表于 2009-4-13 17:00:27

Hex提得很好, will的意见也不错.
我很赞同做成library, 我向我上司提提意见.
谢谢你们的宝贵建议.
页: [1]
查看完整版本: libraries\Loader. 出现错误