Model dibuat untuk memperoleh data dari database. Hal baru dari codeigniter 4 adalah model terdapat pada directory app/models dan ditulis sebagai extends dari file Model (System/Model.php), extends ini meupakan salah satu perbedaan antara codeigniter 3 dan 4.
Codeigniter 3 menggunakan extend CI_Model sedangkan codeigniter 4 menggunkan extends Model.
Contoh Model Codeigniter 4
contoh script
<?php namespace App\Models; use CodeIgniter\Model; class MahasiswaModel extends Model { }
Untuk menggunakan model terlebih dahulu di tuliskan namespace App/Models. Selanjutnya impor superclass menggunkan perintah use CodeIgniter\Model.
Tujuan di import adalah untuk di extend superclass tersebut dan di warisi (Inherintance) sifat atau method dari superclass terebut oleh anak class.
Contoh model ini class MahasiswaModel adalah anak class dari class Model.
Konfigurasi
Di model codeigniter 4 dibutukan konfigurasi akses dan pendefinisian hal – hal sebagai berikut untuk bisa mengakses tabel dari database:
- Nama Tabel
- Primary key
- Kolom tabel yang di akses
Ke 3 konfigurasi di atas merupakan konfigurasi dasar yang harus ada. agar data table bisa di tampilkan
Sebagai contoh sebuah database memiliki tabel mahasiswa seperti di bawah ini:
CREATE TABLE `mahasiswa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(255) NOT NULL,
`jenis_kelamin` varchar(10) NOT NULL,
`alamat` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4
Untuk mengakses tabel maka script yang di definisikan terlebih dahulu pada model adalah sebagai beriku:
<?php namespace App\Models; use CodeIgniter\Model; class MahasiswaModel extends Model { protected $table = 'mahasiswa'; protected $primaryKey = 'id'; protected $allowedFields = ['nama','jenis_kelamin','alamat']; }
untuk digunakan tabel mahasiswa dibuatkan terlebih dahulu property $table disini digunkan table mahasiswa, property $primaryKey diisi dengan primary key dari tabel, secara default nilainya adalah ‘id’ jika di tabel nama primary key adalah ‘id’ maka kita boleh tidak menulis lagi property ini.
property $allowedFields berisi nama field table yang boleh di akses.
Membuat method
Setelah melakukan konfigurasi dasar yang berisi property. selanjutnya untuk dapat digunakan tentu dibutuhkan method pada model.
Contoh method model untuk menampilkan data by id
<?php namespace App\Models; use CodeIgniter\Model; class MahasiswaModel extends Model { protected $table = 'mahasiswa'; protected $primaryKey = 'id'; protected $allowedFields = ['nama','jenis_kelamin','alamat']; public function data_mhs($id_mhs) { return $this->find($id_mhs); } }
contoh di atas kita buat method data_mhs
Menampilkan Data Model di Controller
method data_mhs yang telah di buat di panggil di controller sebagai berikut
script:
<?php namespace App\Controllers; use App\Models\MahasiswaModel; class Mahasiswa extends BaseController { protected $mahasiswamodel; public function __construct() { $this->mahasiswamodel = new MahasiswaModel(); } public function data($id_mhs) { $mhs = $this->mahasiswamodel->data_mhs($id_mhs); dd($mhs); } }
akses melalui url : http://localhost:8080/mahasiswa/data/1
output:
