Membuat Satu Model untuk Semua Controller pada Codeigniter 3

5
(5)

Halo para pembaca sekalian. Kita pastinya sudah mengenal mengenai model pada suatu framework. Apabila Anda masih belum paham mengenai model itu sendiri, Anda bisa membaca pada artikel ini MVC pada Pemrograman. Dalam case kali ini, Kita akan membahas bagaimana cara menggunakan model secara global. Artinya, kita akan membuat satu file model, dimana query tersebut bisa berfungsi untuk semua modul controller. Awalnya, Saya ketika membuat suatu aplikasi, dan dihadapkan membuat beberapa modul, maka saya juga membuat file model tersebut per-modul. Bayangkan saja apabila terdapat banyak modul, pastinya akan terdapat banyak file model pula yang dibuat.

Nah, disini Saya jadi punya pemikiran yang sempit. Bagaimana jika dibuat 1 file model saja. Terlebih lagi, query yang digunakan hanyalah query standar CRUD biasa. Jadi, semua modul controller akan terkoneksi ke 1 modul saja. Ok, sekarang kita memulai untuk membuat file model global CRUD tersebut. Sekarang kita buat file model global dengan nama MGlobal.php dan pada artikel ini, kita akan mebahas mengenai membaca file atau Read data terlebih dahulu.

 
    function read($data=''){
        //ini untuk nama tablenya
        $this->db->from($data['table']);

        //ini untuk select field mana saja yang akan diambil
        if(!empty($data['select'])){
            $this->db->select($data['select']);
        }

        //query join table
        if(!empty($data['join'])){
            foreach($data['join'] as $key => $value) {
                $this->db->join($key,$value);
            }
        }  

        //query pengkondisian where
        if(!empty($data['where'])){
            foreach($data['where'] as $key => $value) {
                if(!empty($value) || $value == '0'){
                    $this->db->where($key,$value);
                }
            }
        }  

        //query pengkinisian like
        if(!empty($data['like'])){
            foreach($data['like'] as $key => $value) {
                if(!empty($value)){
                    $this->db->like($key,$value);
                }
            }
        }      

        //query order
        if(!empty($data['order'])){
            foreach($data['order'] as $key => $value) {
                $this->db->order_by($key,$value);
            }
        }     

        //query grouping value
        if(!empty($data['group'])){
            foreach($data['group'] as $value) {
                $this->db->group_by($value);
            }
        }                  

        //query pengkondisian not in
        if(!empty($data['notIn'])){
            foreach($data['notIn'] as $key => $value) {
                $this->db->where_not_in($key,$value);
            }
        } 

        //query dibentuk
        return $this->db->get();    
    }
 

Sedikit penjelasan, code di atas merupakan kumpulan dai querey builder yang akan dibentuk. Anda dapat menambahkan sesuai keinginan Anda seperti where_in dan sebagainya. Lalu bagaimana cara pada file controller? Pada file controller, jadi sangat mudah sekali penerapannya. Kita menggunakan array untuk mengirimkan data ke file model tersebut.

Dalam case ini, kita sudah memiliki database dengan nama table mahasiswa beserta 5 kolom didalamnya, yakni nama, nim, telepon, tahun, kota. Dan juga terdapat data pada rownya. Berikut contoh code pada controller untuk membuat query array yang akan diolah pada model MGlobal :

 
class Contoh extends CI_Controller {
	public function __construct(){
		//memanggil file model dengan nama MGlobal
		$this->load->model("MGlobal");
	}

	public function index(){
		$arr = [
			"table"		=> "mahasiswa",//nama tabel yang dieksekusi
			"select"	=> "nama, nim, telepon, tahun, kota",//kolom yang akan dipanggil
			"where"		=> ["tahun" => "> 2000", //kondisi tahun lebih besar 2000
					    "kota" => "Jakarta"], // kondisi kota = Jakarta
			"order"		=> ["nama" => "ASC"] //sorting nama ascending
			];
		
		//generate query ke model MGlobal pada function read
		$query= $this->MGlobal->read($arr)->result();

		//hasilnya
		echo json_encode($query);
	}
 

Pada functon index di atas, terdapat array untuk membangun query yang akan diolah pada MGlobal. Query di atas akan berbentuk seperti ini :

 
	select nama, nim, telepon, tahun, kota from mahasiswa where tahun "> 2000" and kota = "Jakarta"
	order by nama ASC
 

Apabila Anda ingin menggunakan query lain, semisal join, like, group TU query yang lainnya yang terdapat pada file model, Anda dapat mencobanya juga denngan cara penulisan yang sama seperti code array di atas.

Nah, cukup paham bukan? Demikianlah penjelasan singkat dan sederhana mengenai Membuat Model Global Read Data pada Codeigniter 3 semoga dapat bermanfaat buat Anda. Terima Kasih.

Seberapa bermanfaat postingan ini?

Klik bintang sebagai rating vote

Rating rata-rata 5 / 5. Jumlah vote 5

Tidak ada vote selama ini

Be the first to comment

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*