IgnitedRecord est un ORM qui peut être associé à CodeIgniter.
Mais le projet semble abandonné… →Utilisation déconsillée
Lien de téléchargement : IgnitedRecord download
L'aide est disponible à l'intérieur du zip téléchargé.
Dézipper l'archive. Copier les fichiers du dossier application/libraries/ dans le dossier du même nom de votre application web.
ignitedrecord doit être chargé :
$autoload['libraries'] = array('database','ignitedrecord/ignitedrecord');
$this->load->library('ignitedrecord/ignitedrecord');
ou
$this->load->orm();
Une classe métier correspond à la notion de model dans codeIgniter.
Considérons la base de données suivante :
La base de données sera composée de 2 models : utilisateur et categorie. La relation de type CIF entre utilisateurs et categories peut s'exprimer de la façon suivante :
Dans le dossier application/models, créer le fichier utilisateur.php :
<?php class Utilisateur extends IgnitedRecord { public $table='utilisateurs'; public $belongs_to ='categorie'; } ?>
Dans le dossier application/models, créer le fichier categorie.php :
<?php class Categorie extends IgnitedRecord{ public $table='categories'; public $has_many='utilisateurs'; } ?>
Le chargement peut être automatique, par le biais de application/config/autoload.php
$autoload['model'] = array('categorie','utilisateur');
ou bien se faire dans un contrôleur :
$this->load->model('utilisateur');
Ajouter un contrôleur utilisateurs dans controllers :
<?php class Utilisateurs extends CI_Controller{ public function all(){ $users=$this->utilisateur->find_all(); foreach ($users as $user){ $user->cat=$user->related('categorie')->get(); } $this->load->view('v_utilisateurs',array('utilisateurs'=>$users)); } } ?>
Créer la vue v_utilisateurs pour afficher la liste des utilisateurs : La variable $utilisateurs est récupérée par la méthode all du contrôleur utilisateurs
<?php foreach ($utilisateurs as $user){ echo($user->nom." (".$user->cat->nom.")<br>"); } ?>
Tester en allant à l'adresse http://localhost/testPhp/utilisateurs/all/
Modifier le contrôleur utilisateurs :
<?php class Utilisateurs extends CI_Controller{ public function add(){ $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|xss_clean'); if ($this->form_validation->run() == FALSE) { $this->load->view('v_utilisateur_add'); } else { $this->submit_add($_POST["username"]); } } public function submit_add($name){ $new_user = $this->utilisateur->new_record(); $new_user->nom=$name; $new_user->save(); $this->load->view('v_success_add',array('user'=>$new_user)); } public function all(){ $users=$this->utilisateur->find_all(); foreach ($users as $user){ $user->cat=$user->related('categorie')->get(); } $this->load->view('v_utilisateurs',array('utilisateurs'=>$users)); } } ?>
La vue v_utilisateur_add sera appelée par l'intermédiaire du contrôleur utilisateurs/add
<html> <head> <title>Ajout utilisateur</title> </head> <body> <?php echo validation_errors(); ?> <?php echo form_open('utilisateurs/add/'); ?> <h5>Nom d'utilisateur</h5> <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" /> <div><input type="submit" value="Ajouter utilisateur" /></div> </form> </body> </html>
La vue v_success_add sera appelée après soumission du formulaire par le contrôleur utilisateurs/submit_add
<?php echo($user->nom." ajouté"); ?>
Tester en allant à l'adresse : http://localhost/testPhp/utilisateurs/add/
Vérifier l'insertion dans la base de données du nouvel utilisateur.