![](/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.