2009-11-27 34 views
1

我加载了我的基于CodeIgniter的网站模型时的错误,但它一直给了一个错误:获取尝试加载模型

"Fatal error: Call to a member function on a non-object in /nfs/c02/h05/mnt/30796/domains/planetchustar.com/html/arguit/system/application/controllers/home.php on line 8" 

这里的代码部分的引用:

function index() 
{ 
     $this->load->model('posts'); //error here 
     $result = $this->Posts->get_all_topics(); 
} 

该模型被称为“职位”,其文件名是“posts.php”。

编辑: 我发现我的问题,这是我没有加载到数据库之前,我试图用它的功能之一,所以我固定的,但现在它的说法:

A Database Error Occurred 
Unable to connect to your database server using the provided settings. 

但我确定我保存在database.php文件中的连接信息是准确的(从phpmyadin网站获得)。

+0

这是否在扩展Controller类的控制器中? – 2009-11-27 22:01:11

+0

是的。我也不想在控制器中制造控制器。 – chustar 2009-11-28 02:28:53

+0

现在完全不同的问题 – ekhaled 2009-11-28 02:41:22

回答

0

codeigniter用户指南在这种情况下有点难以理解。只有文件名应该是小写字母,'load'和调用($ this-> Posts-> etc())应该与模型文件中的声明相匹配。

这绝对是一个区分大小写的问题。

1

'posts'在子目录中吗?如果是这样,那么你需要在加载过程中引用子目录。

如果它不是那么here是一个后这可能会有帮助。

+0

它不在子目录中。 – chustar 2009-11-27 23:22:42

0

我同意@arthur。确保你没有尝试在另一个控制器中嵌入控制器。

0

这是一个的情况下灵敏度误差....

使用它像这样:

function index() 
{ 
     $this->load->model('posts'); //error here 
     $result = $this->posts->get_all_topics();//<-- Notice "posts" and not "Posts" 
} 
+0

根据用户手册,他们说以小写命名该文件,并以大写字母命名该类,但我会改变它并查看。 – chustar 2009-11-28 02:15:01

+0

根据用户手册,他们说以小写命名文件,并以大写命名该类。并改变它不起作用。 – chustar 2009-11-28 02:24:31

+0

按照用户手册...离开文件小写和类大写,但是当你像上面的代码调用类...使用小写....让我知道如果这项工作 – ekhaled 2009-11-28 02:31:59

0

这意味着$这 - >负荷不是一个对象引用(最可能为空)。一旦你知道这一点,为什么可能很容易确定。

+1

我认为$ this - >帖子不是对象引用... – ekhaled 2009-11-28 02:35:03

相关问题