2010-08-09 6 views
33

Possible Duplicate:
Error : get property of non-objecterreur de modèle CodeIgniter: propriété non définie

Je suis nouveau modèle CodeIgniter, j'essaie de suivre les étapes de docs pour charger tous les utilisateurs enregistrés dans mon db.

Ceci est mon modèle: user.php

class User extends Model { 
    function user() { 
     parent::Model(); 
    } 
    function alluser() { 
     $query = $this->db->query("select * from user limit 0,5"); //Line 30 error as in my IDE located in this line 
     return $query->result(); 
    } 
} 

Ceci est mon contrôleur: home.php

class home extends Controller { 

function index() { 

    parent::Controller(); 

} 
function alluser() { 
    $this->load->model('User'); 
    $result = $this->User->showusers(); 
    if ($result->num_rows()>0) { 
     foreach ($result as $row) { 
      echo "ID:".$row->userid." ".$row->userpenname."<br />"; 
      echo $row->userfirstname." ".$row->userlastname."<br />"; 
     } 
     } 
    } 
} 

il affiche l'erreur:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: User::$db 

Filename: models/user.php 

Line Number: 30 

Fatal error: Call to a member function query() on a non-object in
G:\xampp\htdocs\fiksi\system\application\models\user.php on line 30

Ligne 30 Voir le commentaire ci-dessus. .

Répondre

107

Vous devez d'abord charger la bibliothèque db. Dans

autoload.php:

$autoload['libraries'] = array('database'); 

Aussi, essayez de renommer la classe modèle utilisateur pour "User_model".

+0

Merci beaucoup – xsami

+0

Je reçois cette erreur, la gravité: Avis Message: Utilisation de « base de données » constante indéfinie - supposée ' « base de données »' Nom du fichier: config/autoload.php – Anuj

1

Il a résolu throung deuxième paramètre de la charge du modèle:

$this->load->model('user','User'); 

premier paramètre est le nom de fichier du modèle, et le second, il définissant le nom de modèle à utiliser dans le contrôleur:

function alluser() 
{ 
$this->load->model('User'); 
$result = $this->User->showusers(); 
} 
1
function user() { 

     parent::Model(); 

} 

=> le nom de la classe est User, le nom de la construction est User.

function User() { 

     parent::Model(); 

} 
Questions connexes