Models


Models adalah class PHP yang dibuat untuk bekerja dengan database anda. Sebagai contoh, katakanlan anda menggunakan Codeigniter untuk mengatur blog. Anda mungkin mempunyai beberapa class model yang berisi fungsi untuk insert, update, maupun menghapus data blog anda. Berikut ini adalah contoh sebuah class model dengan nama artikel_model.php.

<?php
class Artikel_model extends CI_Model
{
function __construct()
{
parent::__construct();
}

var $table = ‘artikel’;

function get_last_ten_artikel($limit, $offset)
{
$this->db->limit($limit, $offset);
return $this->db->get($this->table);
}

function add($artikel)
{
$this->db->insert($this->table, $artikel);
}

function update($id, $artikel)
{
$this->db->where(‘id’, $id);
$this->db->update($this->table, $artikel);

}

function delete($id)
{
$this->db->where(‘id’, $id);
$this->db->delete($this->table);
}
}

Catatan : Fungsi – fungsi yang ada pada contoh diatas menggunakan fungsi-fungsi Active Record database.

Anatomy sebuah model

Class-class model di simpan di dalam direktori application/models/folder. Basis prototype sebuah class model adalah sebagai berikut:

<?php
class Nama_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
}

Dimana Nama_model adalah nama kelas anda. Perlu diingat bahwa nama sebuah kelas harus diawali dengan huruf besar. Sebagi contoh kelas seperti ini:

<?php
class Artikel_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
}

Apabila anda menyimpannya maka strukturnya seperti ini:

application/models/artikel_model.php

Meload sebuah Model

Model yang dibuat akan diload dan dipanggil melalui fungsi-fungsi controller. Untuk meload sebuah model anda harus menggunakan fungsi berikut ini:

$this->load->model(‘Nama_model’);

Jika model anda berada pada sebuah sub-folder, misalkan berada pada direktori application/models/artikel/artikel_model.php maka untuk meload model perintahnya seperti berikut:

$this->load->model(‘artikel/artikel_model‘);

Sekali diload/dipanggil, anda bisa mengakses fungsi-fungsi yang ada dalam model yang diload tersebut menggunakan objek dengan nama yang sama dengan class model anda:

$this->load->model(‘Nama_model’);

$this->Nama_model->function();

Berikut ini merupakan contoh sebuah controller, yang meload sebuah models.

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model(‘Artikel_model’);
}

function index()
{
$this->get_last_ten_artikel();
}

function get_last_ten_artikel()
{
$data[‘artikel’] = $this->Artikel_model->get_last_ten_artikel();
$this->load->view(‘template’, $data);
}
}

Koneksi ke Database anda.

Untuk seting koneksi database dilakukan secara manual dengan merubah skrip yang ada pada file database.php (application/config/database.php)

$db[‘default’][‘hostname‘] = ‘localhost‘;
$db[‘default’][‘username’] = ‘username_anda’;
$db[‘default’][‘password’] = ‘password_anda’;
$db[‘default’][‘database’] = ‘database_anda’;
$db[‘default’][‘dbdriver’] = ‘mysql’;

Atau melakukan settingan seperti berikut ini pada file controller anda:

$config[‘hostname’] = ‘localhost’;
$config[‘username’] = ‘username_anda’;
$config[‘password’] = ‘password_anda’;
$config[‘database’] = ‘database_anda’;
$config[‘dbdriver’] = ‘mysql’;
$config[‘dbprefix’] = ”;
$config[‘pconnect’] = FALSE;
$config[‘db_debug’] = TRUE;

$this->load->model(‘Nama_model’, ”, $config);