设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
Call to a member function get() on a non-object
返回列表
查看:
4686
|
回复:
7
[已解决]
Call to a member function get() on a non-object
[复制链接]
7777777
7777777
当前离线
积分
4
IP卡
狗仔卡
发表于 2011-3-28 09:53:33
|
显示全部楼层
|
阅读模式
本帖最后由 7777777 于 2011-3-28 11:46 编辑
我在model当中调用$query = $this->db->get("users");时候,报出
Call to a member function get() on a non-object错误,debug中得出$this->db未被载入
但是奇怪的是我在Controller中调用$query = $this->db->get("users");的时候一切正常。
不知是何原因,另外,我已经把'database'添加到$autoload['libraries']当中了。。。
另外:
CI的版本是:
2.0.1
以下是DB的配置
$active_group = 'default';
$active_record =
TRUE
;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
Hex
Hex
当前离线
积分
50165
IP卡
狗仔卡
发表于 2011-3-28 12:24:15
|
显示全部楼层
你的模型没有调用父类构造函数吧?
贴下你的模型的构造函数。
回复
支持
反对
使用道具
举报
显身卡
7777777
7777777
当前离线
积分
4
IP卡
狗仔卡
楼主
|
发表于 2011-3-28 14:03:28
|
显示全部楼层
以下是我的模型的代码:
class User_Model extends CI_Model {
var $id = "";
var $userName = "";
var $pwd = "";
function __construct() {
parent::__construct();
}
function get_user_list() {
var_dump($this);
$query = $this->db->get("users");
return $query->result();
}
}
回复
支持
反对
使用道具
举报
显身卡
7777777
7777777
当前离线
积分
4
IP卡
狗仔卡
楼主
|
发表于 2011-3-28 14:45:21
|
显示全部楼层
原因找到了,我为了能在IDE中获得Model和Controller的提示功能,我在CI_Model中添加了一些个变量的声明,例如:
var $benchmark;
var $calendar;
var $config;
var $db;
等等
只要把上面的声明删掉,就不会报错了,但是为什么Controller中也加了这些的声明,为什么就不报错了,难道是CI_Model类初始化变量加载顺序的问题??具体没看源码,不大清楚了。表示疑问
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50165
IP卡
狗仔卡
发表于 2011-3-28 14:46:02
|
显示全部楼层
你的模型看起来没问题,你的控制器呢?
回复
支持
反对
使用道具
举报
显身卡
7777777
7777777
当前离线
积分
4
IP卡
狗仔卡
楼主
|
发表于 2011-3-28 15:05:12
|
显示全部楼层
也不是控制器的问题,我只要把后加到CI_Model类中的变量都删除了,就不报错了。多谢了,哪天有空看看源码这个部分是怎么写的。
回复
支持
反对
使用道具
举报
显身卡
tttlh
tttlh
当前离线
积分
172
IP卡
狗仔卡
发表于 2011-5-30 14:55:25
|
显示全部楼层
果然啊。。。
回复
支持
反对
使用道具
举报
显身卡
yoen.xu
yoen.xu
当前离线
积分
58
IP卡
狗仔卡
发表于 2011-11-2 17:38:12
|
显示全部楼层
当一个模型被载入时,它并不会自动连接数据库。以下方法可以使您连接数据库:
您可以使用标准方法来连接数据库(说明), 也可以通过控制器或者您的自定义模型。
您可以把第三个参数设置为TRUE来使模型装载函数自动连接数据库,连接配置可以在您的数据库配置文件中可以定义:
$this->load->model('Model_name', '', TRUE);
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页