Codeigniter 3.0.2没有从库文件夹

时间:2015-10-15 10:46:46

标签: php codeigniter

我不知道为什么codeigniter会出现这样的行为:

1)我在application / libraries / form文件夹中创建了一个类Adminforms.php。

class Adminforms {

public function displayLoginForm() {
$formOptions = array();
return $formOptions;
}
}

2)当我在视图中加载这个库类时

<? $this->load->library("form/adminforms"); ?>
<? var_dump($this->adminforms); ?>
<?= $this->adminforms->displayLoginForm(); ?>

显示错误:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_Loader::$adminforms

3)我进入了Loader类的codeigniter并开始看到它的行为。我看到文件路径,类名完全可以加载这个库。 codeigniter还在_ci_classes(Loader.php第1242行)中设置其名称。但是当它将对象分配给codeigniter实例时

$CI->$object_name = isset($config)
? new $class_name($config)
: new $class_name();

我尝试为我的Adminforms.php库打印此实例对象$ CI-&gt; $ object_name。我得到了以下信息:

object(Adminforms)#20 (0) { }

有谁知道为什么它没有正确加载类对象?

1 个答案:

答案 0 :(得分:1)

您需要首先获取ci对象,然后使用该对象。 视图中没有ci对象。理想情况下,您不应该在视图中加载库。 Codeigniter遵循MVC模式。业务逻辑应该在Model中,控件应该在控制器中,视图应该是,查看

$this->ci =& get_instance (  );
$this->ci->load->library("Test/Adminforms");
$this->ci->adminforms->displayLoginForm();