![](/img/trans.png)
[英]Loading Codeigniter library from a different folder under application folder
[英]Codeigniter 3.0.2 not loading application library from libraries folder
我不知道为什么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)我进入了codeigniter的Loader类,开始看到它的行为。 我看到文件路径,类名非常适合加载该库。 而且codeigniter还在_ci_classes中设置了它的名称(Loader.php第1242行)。 但是当它分配对象到codeigniter实例时
$CI->$object_name = isset($config)
? new $class_name($config)
: new $class_name();
我尝试为我的Adminforms.php库打印此实例对象$ CI-> $ object_name。 我得到以下信息:
object(Adminforms)#20 (0) { }
有谁知道为什么它不能正确加载类对象?
您需要首先获取ci对象,然后改用该对象。 ci对象在视图中不可用。 理想情况下,您不应在视图中加载库。 Codeigniter遵循MVC模式。 业务逻辑应该在模型中,控制应该在控制器中,视图应该在视图中
$this->ci =& get_instance ( );
$this->ci->load->library("Test/Adminforms");
$this->ci->adminforms->displayLoginForm();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.