Bir model yüklemeye çalışırken bir hata alıyorum

5 Cevap php

Ben CodeIgniter tabanlı bir web sitesi için bir model yükleme değilim, ama bu bir hata vererek tutar:

"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"

İşte kod, referans bir parçası:

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

Model "Mesajlar" olarak adlandırılan ve dosya adı "posts.php" olduğunu.

EDIT: I found out one of my problems, which was that I wasn't loading to database before I tried to use its functions, so I fixed that, but now its saying:

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

Ama ben database.php dosyaya kaydedilir bağlantı bilgileri (phpmyadin web sitesinden aldım) doğru olduğuna eminim.

5 Cevap

CodeIgniter Kullanım Kılavuzu bu durumda anlamak biraz zordur. SADECE dosya adı küçük harf, 'yük' ve çağrı olmalıdır ($ this-> Mesajlar-> vb ()) modeli dosyasında beyanı eşleşmesi gerekir.

Bu kesinlikle bir harf duyarlılığı konudur oluyor.

Bir alt dizininde 'mesaj' mı? Eğer öyleyse o zaman yük sırasında alt dizini başvurmak gerekir.

Eğer değilse o zaman here yardımcı olabilecek bir yazıdır.

Ben @ arthur katılıyorum. Eğer başka bir kontrolör içinde bir kontrolör embed denemedim emin olun.

Bu bir harf duyarlılığı hatası var ....

böylece gibi kullanabilirsiniz:

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

Bu $ this-> load bir nesne referans (büyük olasılıkla null) olmadığı anlamına gelir. Bunu biliyor kez Neden belki kolay belirlemek için.