CodeIgniter models

Model classes are stored in 'application/models/' folder.

Gallery model example (stored in 'application/models/gallery_model.php'):

<?php
class Gallery_model extends CI_Model {
 
    var $title   = '';
    var $content = '';
 
    function __construct() {
        parent::__construct();
    }
 
    function get_recent_entries() {
        $query = $this->db->get('entries', 10);
        return $query->result();
    }
 
    function insert_entry() {
        $this->title = $this->input->post('title');
        $this->content = $this->input->post('content');
        $this->db->insert('entries', $this);
    }
 
    function update_entry() {
        $this->title = $this->input->post('title');
        $this->content = $this->input->post('content');
        $this->db->update('entries', $this, array('id' => $this->input->post('id')));
    }
}
?>

Loading a Model

<?php
$this->load->model('Gallery_model');
$this->load->model('subfolder/Gallery_model'); // load model from 'application/models/subfolder/gallery_model.php'
$this->Gallery_model->get_recent_entries(); // access the model functions using an object with the same name as the model class
?>

Example of controller that loads model and serves view:

<?php
class Gallery extends CI_Controller {
    function listing() {
        $this->load->model('Gallery_model');
        $data['query'] = $this->Gallery_model->get_recent_entries();
        $this->load->view('template', $data);
    }
}
?>

Auto-loading models

You can set list of models which will be auto-loaded during system initialization in file: "application/config/autoload.php"

Leave a Reply

Your email address will not be published. Required fields are marked *