簡體   English   中英

codeigniter - >加載多個庫/類時遇到問題

[英]codeigniter -> having trouble loading multiple libraries/classes

好的,所以在我的基本控制器(page.php)中我有以下代碼可以正常工作:

   $this->load->library('Siteclass');
   $mysite = new site_model();

siteclass庫引用名為site_model的模型,並根據從該模型接收的數據進行實例化。 一切都很好。

現在,我想加載另一個庫,以便可以實例化另一個對象。 所以我將其添加到page.php:

 $this->load->library('Memberclass');
 $mysite = new member_model();

但是現在我得到以下錯誤:

 Message: Undefined property: Memberclass::$site_model
 Filename: libraries/Loader.php
 Line Number: 1035

據我所知,似乎加載器類在應用於Memberclass時,仍以某種方式引用site_model而不是member_model。 我檢查了我的代碼,我肯定是在調用正確的文件。

這是Siteclass.php的樣子:

 if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

 class Siteclass extends Controller {
    function __construct() {
        parent::Controller();
        $this->load->model('Site_model');
        $data = $this->Site_model->load_site_data();
        // etc etc

這是Memberclass.php的樣子:

if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Memberclass extends Controller {
function __construct() {
        parent::Controller();
    $this->load->model('Member_model');
        $data = $this->Member_model->load_member_data();
        // etc etc

在此先感謝您的幫助!

加里

我認為您對MVC在CodeIgniter中的工作方式感到困惑。 為什么要使用loader類創建控制器? 為什么要在控制器類之外創建模型的獨立實例?

在CodeIgniter中,您的URL表示控制器方法的路徑。 這意味着如果你去,你的“基礎控制器”應該自動實例化:

www.example.com/memberclass

或者更重要的是,如果您有這樣的鏈接:

www.example.com/page

您應該在/application/controllers目錄中有一個名為page.php ,如下所示:

if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Page extends Controller {
    function __construct() {
        parent::Controller();
        // etc etc

此外,除非您每次調用此控制器時從模型中加載要使用的數據,否則您需要將模型調用放在此類的非構造函數方法中。 就像是:

class Page extends Controller {
    function __construct() {
        parent::Controller();
    }

    function index() {
        $this->load->model('Member_model');
        $data = $this->Member_model->load_member_data();
        $this->load->view('myview', array('data'=>$data));
    }
}

所以再次......不完全確定你在做什么背景,但看起來你並沒有堅定地站在框架內。 基本上沒有理由你應該使用loader類加載控制器,而且你沒有理由使用PHP的new關鍵字創建模型類的獨立實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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