10 jan 2010
Tutoriel ACICRUD #5
Dans ce cinquième tutoriel d’utilisation de la librairie ACICURD pour CodeIgniter, nous allons voir comment définir de nouvelles méthodes dans les modèles utilisant ACICRUD et comment profiter de certaines méthodes de la librairie.
Création d’une méthode spécifique
Imaginons que vous désiriez sélectionner un champ username dans une table user à partir de l’identifiant de l’utilisateur id. Nous allons pour cela ajouter une nouvelle méthode dans notre modèle ayant exactement le fonctionnement que nous désirons et s’appuyant sur la méthode $this->row() qui exécute la requête Active Record et retourne un objet résultat.
Notez qu’il serait également possible d’utiliser la méthode getAll() d’ACICRUD pour arriver à ce résultat.
Voici le code du fichier user.php à placer dans le répertoire models :
<?php class User extends Acicrud { //CONSTRUCTOR public function __construct() { parent::__construct('user'); } //CUSTOM METHODS /** * Return the username of an user identified by his id * * @param int $id * @return Object */ public function get_username($id = null) { try { // Checking if $id is a valid primary key value $this->checkId($id); // Building the query $this->db->select('username')->from($this->table)->where($this->key, $id); // Returning the result return $this->row(); } catch(Exception $e) { throw($e); // Throws the ACICRUD's exception } } } ?> |
Il vous est donc tout à fait possible d’ajouter vos propres comportements au sein d’un modèle héritant de la librairie ACICRUD. Notez que dans cet exemple, la méthode s’appuie également sur le système d’exceptions géré par ACICRUD. Je vous conseille donc d’inclure l’appel de la méthode get_username dans votre contrôleur au sein d’un bloc try/catch.

Commentaires