簡體   English   中英

Codeigniter 3.0.2無法從庫文件夾加載應用程序庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM