2009-11-27 5 views
1

je charge un modèle pour mon site web basé sur CodeIgniter, mais il continue à donner une erreur:Obtenir une erreur en essayant de charger un modèle

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

Voici la partie du code de son référencement:

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

Le modèle s'appelle "Posts" et son nom de fichier est "posts.php".

EDIT: J'ai trouvé un de mes problèmes, ce qui était que je ne chargeait pas la base de données avant d'essayer d'utiliser ses fonctions, donc je fixe, mais maintenant son dicton:

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

Mais je suis certain que les informations de connexion que j'ai sauvegardées dans le fichier database.php sont exactes (obtenues sur le site web de phpmyadin).

+0

Est-ce dans un contrôleur qui étend la classe de contrôleur? –

+0

Oui c'est. Je n'essaie pas non plus de faire un contrôleur dans le contrôleur. – chustar

+0

Une question totalement différente maintenant – ekhaled

Répondre

0

Le guide d'utilisateur codeigniter est un peu difficile à comprendre dans ce cas. SEULEMENT le nom du fichier doit être en minuscules, le 'load' et l'appel ($ this-> Posts-> etc()) doivent correspondre à la déclaration dans le fichier modèle.

C'est certainement un problème de sensibilité à la casse.

1

Est-ce que 'posts' se trouve dans un sous-répertoire? Si c'est le cas, vous devez référencer le sous-répertoire pendant le chargement.

Si ce n'est pas le cas, here est un message qui peut aider.

+0

Ce n'est pas dans un sous-répertoire. – chustar

0

Je suis d'accord avec @arthur. Assurez-vous que vous n'avez pas essayé d'intégrer un contrôleur dans un autre contrôleur.

0

C'est une erreur cas de sensibilité ....

l'utiliser comme ceci:

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

Selon l'usermanual, ils ont dit de nommer le fichier en minuscules, et de nommer la classe en majuscule, mais je vais le changer et voir. – chustar

+0

Selon l'usermanual, ils ont dit de nommer le fichier en minuscules et de nommer la classe en majuscules. Et changer ça ne marche pas. – chustar

+0

suivez le mode d'emploi ... laissez le fichier en minuscule et le majuscule de la classe, Mais quand vous appelez la classe comme le code ci-dessus ... utilisez des minuscules .... laissez-moi savoir si cela fonctionne – ekhaled

0

Cela signifie que $ this-> charge n'est pas une référence d'objet (nul le plus probable). Pourquoi peut-être facile à déterminer une fois que vous le savez.

+1

Je pense $ this -> Posts n'est pas une référence d'objet ... – ekhaled

Questions connexes