2009-11-27 85 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