CodeIgniter – Faire appel à un modèle depuis un autre modèle
Nous avons été confrontés à une contrainte de CodeIgniter pendant le développement du CMS. La réponse s’est trouvée sur le forum officiel, bien cachée ^^
Mise en situation : nous sommes dans le modèle A, et nous souhaitons faire appel à une méthode du modèle B.
Il n’existe aucune façon de réaliser cet appel directement. Il faut faire appel au super-objet CI.
Voici la solution :
Class A_model extends Model {
private $_ci ;
function A_model() {
parent ::Model() ;
$this->_ci = &get_instance() ; // on récupère l’instance de l’objet ci
$this->_ci->load->model(‘B_model’) ; // chargement du modèle B
}
function foo() {
$this->_ci->b_model->methode() ; // appel à une méthode du modèle B
}
}
Ca marche aussi avec les chargements de classes et de helpers :)