CodeIgniter : Comment contourner l’erreur Trying to get property of non-object

CodeIgniter est très agréable à utiliser mais il présente quelques petits désagréments, notamment lors de la requête d’un seul enregistrement.

L’exemple qui nous intéresse ici est trivial. Il s’agit de rechercher le nombre d’enregistrements d’une table à partir d’un « id ». Fastoche !

En utilisant totalement les classes Active Record d’accès à la base de données, nous ferions normalement un :

function count_user($id)
{
	// Compte le nombre de membres d'un service
	// et renvoie le résultat
	$this->db->select('count(*) as decompte');
	$this->db->from('user');
	$this->db->where('service_id',$id);
	$query = $this->db->get();
	return $query;
}

Libre à nous ensuite de nous démerder dans le contrôleur pour récupérer la valeur. Mais non…

Cette façon de procéder lève l’erreur CodeIgniter « Trying to get property of non-object« .

Du coup, nous changeons notre fusil d’épaule et procédons comme ceci :

function count_user($id)
{
	// Compte le nombre de membres d'un service
	// et renvoie le résultat
	$this->db->select('count(*) as decompte');
	$this->db->from('user');
	$this->db->where('service_id',$id);
	$query = $this->db->get();
	$entry = $query->row();
	return $entry->decompte;
}

… en renvoyant le nom du champ, tout simplement.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*