好了,在我的基本控制器(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
從我可以告訴,似乎裝載機類,當被應用到成員類,以某種方式仍然引用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
在此先感謝您的幫助!
加里
@treeface - 我不認爲我的意思是使用loader類來設置控制器。我的意思是使用loader類來設置特定的對象。當我最初設置庫時,我無法加載模型。看起來像模型加載只在圖書館工作時,我做了一個控制器。這就是我想要做的事情:我的基本控制器是page.php,我正在使用__remap(),以便/ page/something的所有url都轉到此控制器。從這裏開始,我希望能夠根據定義的類(如成員,用戶等)來實例化各種對象。您能否建議正確的方法來執行此操作?謝謝! – Gary 2010-12-20 19:18:48
@treeface - 好吧,我想我越來越近了。在page.php中,我調用模型,它返回我需要的數據,*然後*我通過包含該模型數據作爲庫調用的一部分來調用庫實例化對象。我在正確的道路上嗎? – Gary 2010-12-20 19:24:25
@Gary如果要從庫中的模型中獲取數據,則需要獲取對當前正在使用的CI控制器的引用。要在你的控制器中做到這一點,你應該這樣做:'$ CI =&get_instance();'。現在你可以通過'$ CI-> my_model-> getMyData();'來調用模型。 – treeface 2010-12-20 19:34:28