Duplicata possible:
Erreur: obtenir la propriété du non-objet
Je suis nouveau sur le modèle codeigniter, j'essaie de suivre les étapes dans les documents pour charger tous les utilisateurs enregistrés dans ma base de données.
Voici 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();
}
}
Voici 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 montrant une erreur:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: User::$db
Filename: models/user.php
Line Number: 30
Erreur fatale: appel à une requête de fonction membre () sur un non-objet dans
G:\xampp\htdocs\fiksi\system\application\models\user.php sur la ligne 30
Ligne 30, voir le commentaire ci-dessus ...
Vous devez d'abord charger la bibliothèque db. Dans autoload.php
ajouter :
$autoload['libraries'] = array('database');
Essayez également de renommer la classe de modèle utilisateur pour "User_model".
function user() {
parent::Model();
}
=> le nom de la classe est Utilisateur, le nom de la construction est Utilisateur.
function User() {
parent::Model();
}
Il a résolu le deuxième paramètre dans la charge du modèle:
$this->load->model('user','User');
le premier paramètre est le nom de fichier du modèle et le second définit le nom du modèle à utiliser dans le contrôleur:
function alluser()
{
$this->load->model('User');
$result = $this->User->showusers();
}