好了,在我的基本控制器(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