Home » Codeigniter » Tutorial Membuat CRUD Sederhana pada CodeIgniter 4

Tutorial Membuat CRUD Sederhana pada CodeIgniter 4

by Bagus Dharma Iswara
by Bagus Dharma Iswara

Teman-teman disarankan terlebih dahulu untuk membaca Tutorial Membuat Aplikasi Hello World pada CodeIgniter 4 agar dapat lebih memahami materi mengenai CodeIgniter 4 ini karena penulisan Controller pada sintaksnya sangatlah berbeda dibandingkan versi CodeIgniter 3.

Kali ini kita akan mencoba belajar kembali untuk membuat sebuah Tutorial Membuat Aplikasi CRUD sederhana pada CodeIgniter 4. Untuk pembahasan kali ini diharuskan terlebih dahulu memahami mengenai CRUD yang dapat dibaca pada Apa Itu CRUD ? Pahami Fungsi dan Caranya.

Kemudian disarankan juga kita harus memahami mengenai SQL. SQL disini sangat diperlukan bagi seorang programmer atau pengembang sebuah aplikasi baik itu aplikasi berbasis mobile ataupun aplikasi berbasis website. Pada materi kali ini SQL yang kita gunakan adalah MySQL.

Membuat Database

Langkah pertama yang harus kita lakukan adalah membuat sebuah database. Pada database ini para pengembang aplikasi pemula ataupun sudah mahir sekalipun biasanya menggunakan database MySQL, namun untuk programmer atau pengembang aplikasi tingkat mahir yang memerlukan sebuah database yang lebih cepat, mereka biasanya akan menggunakan sebuah database bernama PostGreSQL.

Jika kita ingin membuat sebuah database pada MySQL maka kita dapat menuliskan dan bisa mengeksekusi query berikut

CREATE DATABASE tutorial_CI4;

kode berikut merupakan cara kita untuk dapat membuat sebuah database dengan nama tutorial_CI4. Jika teman-teman masih bingung untuk membuat sebuah database maka perlu melihat kembali dan membaca materi mengenai Data Definition Language (DDL) pada MySQL.

Membuat Tabel

Langkah kedua ini kita diharuskan untuk membuat sebuah tabel pada database tutorial_CI4 yang telah dibuat sebelumnya. Kita dapat membuat tabel dengan menuliskan dan mengeksekusi kode berikut

CREATE TABLE customer(
customer_id INT PRIMARY KEY AUTO_INCREMENT,
customer_firstname VARCHAR(20),
customer_lastname VARCHAR(20)
);

Pada kode diatas kita telah membuat sebuah tabel dengan nama customer dengan struktur tabel sebagai berikut :

  1. customer_id.
  2. customer_firstname.
  3. customer_lastname.

pada bagian pertama, untuk customer_id dapat dibuat dengan tipe data Integer atau Int dengan menjadikannya sebuah Primary Key dan Auto Increment. Untuk ID biasanya kita gunakan sebuah Primary Key dan Auto Increment untuk memudahkan programmer.

Jika masih bingung mengenai kueri diatas maka kita sarankan kembali untuk membaca materi mengenai Data Manipulation Language (DML) di MySQL.

Membuat Koneksi Database

Setelah kita berhasil dalam membuat sebuah database dan sebuah tabel dalam database tutorial_CI4. maka kita dapat membuat sebuah koneksi database menggunakan CodeIgniter 4.

Disini kita dapat membuat koneksi database melalui 2 cara yaitu dengan file Database.php yang berada pada folder app/Config atau menggunakan file env yang terdapat pada root project.

Dalam tutorial ini kita akan membahas dengan menggunakan kedua cara ini.

1. Menggunakan file Database.php

Cara pertama yang akan kita bahas untuk membuat koneksi database pada CodeIgniter 4 adalah dengan cara menggunakan file database.php yang berada pada direktori app/Config, File database.php dapat dibuka dengan text editor yang teman-teman gunakan saat ini.

Kalau belum memiliki text editor maka dapat membaca rekomendasi kami mengenai text editor pada Text Editor Gratis. kita dapat menemukan dan melihat kode berikut pada file

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => '',
        'password' => '',
        'database' => '',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => false,
        'DBDebug'  => (ENVIRONMENT !== 'production'),
        'cacheOn'  => false,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => false,
        'compress' => false,
        'strictOn' => false,
        'failover' => [],
        'port'     => 3306,
];

Kemudian dapat kita ubah kode diatas menjadi

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'tutorial_CI4',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => false,
        'DBDebug'  => (ENVIRONMENT !== 'production'),
        'cacheOn'  => false,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => false,
        'compress' => false,
        'strictOn' => false,
        'failover' => [],
        'port'     => 3306,
];

Kalau sudah diganti, coba kembali project yang telah dibuat pada browser kalau tidak ada pemberitahuan error maka langkah yang sudah dikerjakan sudah benar dan database sudah berhasil terkoneksi dengan CodeIgniter 4. Cara ini sangat mirip dengan cara mengkoneksikan CodeIgniter pada database menggunakan CodeIgniter 3.

2. Menggunakan file ENV

Cara ini merupakan cara baru yang digunakan pada CodeIgniter 4 untuk dapat mengkoneksi sebuah database pada CodeIgniter. Kita dapat menggunakan file env yang terdapat pada root project.

Pertama kita buka terlebih dahulu file env pada root project, selanjutnya kita dapat mengganti (rename) nama file tersebut dengan ekstensi .env selanjutnya dapat kita buka file .env tersebut. Maka kita akan menemukan kode berikut

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi

Kode diatas dapat kita ubah menjadi seperti ini

database.default.hostname = localhost
database.default.database = tutorial_CI4
database.default.username = root
database.default.password = 
database.default.DBDriver = MySQLi

dapat kita lihat pada kode diatas, kita memasukkan hostname dengan localhost ini dapat diganti juga dengan IP address dari server ataupun nama domain utama yang kita miliki.

Database dengan tutorial_CI4 ini juga nantinya dapat diganti dengan nama database yang kita miliki, untuk kasus ini database yang kita miliki adalah dengan nama tutorial_CI4. username dengan root dan jenis DBDriver adalah MySQLi ini juga dapat diganti tergantung dengan jenis database yang akan kita gunakan nantinya.

Cara menampilkan data (Read) dari database pada CodeIgniter 4 ke dalam View

Kalau koneksi CodeIgniter 4 kita dengan database sudah berhasil, kita dapat melanjutkannya dengan menampilkan data (read) dari database kedalam view pada CodeIgniter 4. Pertama kita harus membuat beberapa data dummy atau data yang kita buat sendiri menggunakan fungsi SQL INSERT INTO.

INSERT INTO customer(customer_firstname,customer_lastname) VALUES
('Andi','Surya'),
('Budi','Adi'),
('Darma','Surya'),
('Sutanto','Rahman'),
('Sakura','Bunga'),
('Mawar','Ayu'),
('Kintan','Agung'),
('Bulan','Dewi'),
('Adena','Rahayu'),
('Wulan','Dari'),
('Lestari','Trisna');

1. Membuat Model

Data-data hasil kueri dari INSERT sebelumnya sudah berada didalam database yang kita miliki, saat ini kita dapat membuat sebuah model dengan nama Customer_model.php di dalam folder models atau biasanya berada pada direktori app/Models.

Ubah atau tambahkan file Customer_model.php dengan kode berikut pada text editor

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Costumer_model extends Model
{
    protected $table = 'customer';
     
    public function getCustomert($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['customer_id' => $id]);
        }   
    }
}

Pada baris kode diatas kita memiliki sebuah nama fungsi getCustomer($id=false), ini berarti fungsi yang kita buat membawa parameter ID yang secara default kita set sebagai false.

Hal penting lainnya adalah pada kode protected $table = ‘customer’; ini berarti kita mengambil sebuah tabel dengan nama tabel customer. Biasanya ketika mengambil tabel disini kita menginisiasikannya dengan identifier protected.

Pada function getCustomer juga terdapat 2 kondisi yaitu:

Jika $id sama dengan false, maka kembalikan nilai semua data yang terdapat pada table customer atau biasa kita sebut dengan mereturn atau mengeluarkan semua hasil data yang terdapat pada tabel customer. Cara ini kita dapat dengan menuliskan kode berikut

return $this->findAll();

 jika $id memiliki nilai/value, maka kembalikan nilai data berdasarkan value $id yang terdapat pada table customer atau biasa kita sebut dengan mereturn atau mengeluarkan nilai data berdasarkan value $id yang terdapat pada tabel customer. Cara ini kita dapat dengan menuliskan kode berikut

return $this->getWhere(['customer_id' => $id]);

Kode ini berfungsi sebagai cara untuk menampilkan data berdasarkan data ID yang dibutuhkan, jadi ketika kita membutuhkan sebuah data costumer id terntentu maka kita tidak perlu untuk membuat function kembali.

2. Membuat Controller

Membuat File Controller dengan nama Customer.php, perlu diingat disini penamaan harus diawali dengan huruf awal CAPITAL.

Lokasi file controller berada pada direktori app/Controller. Kalau teman-teman masih bingung mengenai Controller dapat membaca pada Tutorial Membuat Aplikasi Hello World pada CodeIgniter 4.

Pada file Customer.php kita dapat menambahkan kode berikut pada text editor

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Customer_model;
 
class Customer extends Controller
{
    public function index()
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomer();
        echo view('customer_view',$data);
    }
}

Perlu diperhatikan pada kode baris ke 4 kita dapat memanggil model dengan nama Customer_model yang telah kita buat sebelumnya yaitu dengan menggunakan fungsi use. Kode tersebut lebih jelasnya dapat dipanggil dengan kode berikut

use App\Models\Customer_model;

Pada kode diatas juga terdapat sebuah nama fungsi index() yang dapat kita buat untuk membuat sebuah instance dari model Customer_model.php yang dapat dilihat pada kode

$model = new Customer_model();

Dengan adanya instansiasi ini maka kita dapat melakukan panggilan untuk semua fungsi yang ada pada model Customer_model.php dari fungsi index pada controller.

Kemudian terdapat kode

$data['customer'] = $model->getCustomer();

Ini berarti kode akan menjalankan sebuah fungsi untuk memanggil fungsi getCustomer() yang terdapat pada Customer_model.php yang kemudian disimpan kedalam variabel $data.

3. Membuat View

Langkah ketiga, kita dapat membuat sebuah file View dengan nama customer_view.php folder ini biasanya terdapat pada direktori app/Views yang kemudian dapat kita tuliskan kode berikut

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Nama Pelanggan</title>
  </head>
  <body> 
    <table>
        <thead>
            <tr>
                <th>Nama Pertama</th>
                <th>Nama Kedua</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($customer as $row):?>
            <tr>
                <td><?= $row['customer_firstname'];?></td>
                <td><?= $row['customer_lastname'];?></td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

Setelah membuat sebuah file view ini, Ketiga file yang dibutuhkan sudah lengkap mulai dari controller, model dan view sudah dibuat sekarang saatnya untuk mengecek kembali hasil yang telah dibuat. kita dapat menjalankan pada command prompt atau terminal kita dengan menuliskan

php spark serve

Selanjutnya dapat membuka dan melihat hasilnya pada browser dengan menuliskan alamat localhost:8080/customer. Ketika berhasil dijalankan maka akan menampilkan tampilan tabel yang berisi data dummy dari database yang telah kita buat.

Cara Menambahkan Data Baru (Create) ke Dalam Database pada CodeIgniter 4

Sebelumnya kita sudah berhasil dalam menampilkan atau mengambil data-data yang ada pada database tutorial_CI4 dan mengambil data dari tabel customer. Kali ini kita akan mencoba untuk Menambahkan data baru ke dalam database dengan fungsi CRUD melalui fungsi CREATE.

1. Membuat View

Kali ini kita dapat membuat sebuah view baru dengan nama add_customer_view.php yang biasanya berada pada direktori app/Views, kemudian kita dapat menambahkan dan menulis kode berikut pada file

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Add New Customer</title>
</head>
<body>
    <form action="/customer/save" method="post">
        <input type="text" name="customer_firstname">
        <input type="text" name="customer_lastname">
        <button type="submit">Save</button>
    </form>
</body>
</html>

Pada kode diatas kita membuat sebuah form dengan 2 inputan yang masing-masing adalah input customer_firstname dan customer_lastname keduanya bertipe inputan sebuah teks.

2. Membuat Controller

Setelah membuat model untuk menambahkan data, kita dapat membuka kembali controller yang telah dibuat sebelumnya yaitu controller Costumer.php

Kita dapat menambahkan beberapa kode berikut kedalam controller Customer.php

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Customer_model;
 
class Customer extends Controller
{
    public function index()
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomer();
        echo view('customer_view',$data);
    }

    public function add_new()
    {
        echo view('add_customer_view');
    }
 
    public function save()
    {
        $model = new Customer_model();
        $data = array(
            'customer_firstname'  => $this->request->getPost('customer_firstname'),
            'customer_lastname' => $this->request->getPost('customer_lastname'),
        );
        $model->saveCustomer($data);
        return redirect()->to('/customer');
    }
}

Kode ini terdapat 2 tambahan fungsi baru yaitu fungsi add_new() dan fungsi save(). Fungsi add_new() disini berfungsi sebagai cara untuk menampilkan form input dari customer sedangkan fungsi save() disiini berfungsi sebagai cara untuk menyimpan data kedalam database yang kita kirimkan ke model.

Catatan : ada beberapa kode yang baru pada fungsi save(). kita kenali satu persatu

  1. Berisi kode $this->request->getPost(‘customer_firstname’) ini berarti kita dapat menambahkan data kedalam tabel customer pada kolom customer_firstname dengan metode atau cara penggunaan fungsi dari HTTP yaitu POST.
  2. Berisi kode $this->request->getPost(‘customer_lastname’); ini berarti kita dapat menambahkan data kedalam tabel customer pada kolom customer_lastname dengan metode atau cara penggunaan fungsi dari HTTP yaitu POST.
  3. Berisi kode $model->saveCustomer($data); ini berarti kita mengambil fungsi dari model customer_model yang akan kita buat setelah ini. Pada model ini kita memiliki sebuah fungsi bernama saveCustomer() untuk melakukan insert data.
  4. Berisi kode return redirect()->to(‘/customer’);, ini berarti kita menggunakan fungsi untuk kembali pada controller dalam hal ini kita kembali pada controller customer

3. Membuat Model

Langkah ketiga ini kita akan membuka kembali file model yang telah dibuat sebelumnya dengan nama model yaitu Customer_model.php yang biasanya berada pada direktori app/Models, selanjutnya akan kita tambahkan beberapa kode berikut pada model

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Costumer_model extends Model
{
    protected $table = 'customer';
     
    public function getCustomert($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['customer_id' => $id]);
        }   
    }

    public function saveCustomer($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }
}

Kita telah menambah sebuah fungsi dengan nama saveCustomer() disini berarti kita dapat menggunakan cara ini untuk menyimpan data yang telah dibuat kedalam sebuah database.

Jika sudah selesai maka kita dapat kembali lagi ke browser dan menuliskan alamat localhost:8080/customer/add_new. Jika berhasil maka akan menampilkan form untuk menambahkan data customer_firstname dan customer_lastname.

Cara Memperbaharui Data atau Update Data pada CodeIgniter 4

Kita telah berhasil membuat 2 Fungsi dari CRUD yaitu menampilkan data atau READ, membuat data baru atau CREATE kali ini kita akan membuat UPDATE atau memperbaharui data ke database.

1. Edit View

Buka kembali file view customer_view.php yang biasanya berada pada direktori app/Views, kemudian kita dapat menambahkan dan menulis kode berikut pada file

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Nama Pelanggan</title>
  </head>
  <body> 
     <a href="/customer/add_new">Add New Customer</a>
    <table>
        <thead>
            <tr>
                <th>Nama Pertama</th>
                <th>Nama Kedua</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($customer as $row):?>
            <tr>
                <td><?= $row['customer_firstname'];?></td>
                <td><?= $row['customer_lastname'];?></td>
                <td><a href="/customer/edit/<?= $row['customer_id'];?>">Edit</a></td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

Disini kita telah menambah sebuah kolom baru dengan nama Action serta ditambah dengan tombol Edit untuk melakukan update data.

2. Edit Controller

Sekarang kita harus menambahkan kode berikut pada controller Customer.php

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Customer_model;
 
class Customer extends Controller
{
    public function index()
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomer();
        echo view('customer_view',$data);
    }

    public function add_new()
    {
        echo view('add_customer_view');
    }
 
    public function save()
    {
        $model = new Customer_model();
        $data = array(
            'customer_firstname'  => $this->request->getPost('customer_firstname'),
            'customer_lastname' => $this->request->getPost('customer_lastname'),
        );
        $model->saveCustomer($data);
        return redirect()->to('/customer');
    }

    public function edit($id)
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomert($id)->getRow();
        echo view('edit_customer_view', $data);
    }
 
    public function update()
    {
        $model = new Customer_model();
        $id = $this->request->getPost('customer_id');
        $data = array(
            'customer_firstname'  => $this->request->getPost('customer_firstname'),
            'customer_lastname' => $this->request->getPost('customer_lastname'),
        );
        $model->updateCustomer($data, $id);
        return redirect()->to('/customer');
    }
}

Kode ini terdapat 2 tambahan fungsi baru yaitu fungsi edit() dan fungsi update(). Fungsi edit() disini berfungsi sebagai cara untuk menampilkan data form input dari customer sedangkan fungsi update() disiini berfungsi sebagai cara untuk menyimpan data yang telah diupdate atau diperbaharui kedalam database yang kita kirimkan melalui model.

3. Membuat View

Kali ini kita akan membuat sebuah view baru dengan nama edit_customer_view.php dengan menuliskan kode berikut

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Edit Customer</title>
</head>
<body>
    <form action="/customer/update" method="post">
        <input type="text" name="customer_firstname" value="<?= $product->customer_firstname;?>">
        <input type="text" name="customer_lastname" value="<?= $product->customer_lastname;?>">
        <input type="hidden" name="customer_id" value="<?= $product->customer_id;?>">
        <button type="submit">Update</button>
    </form>
</body>
</html>

4. Edit Model

Edit kembali file Customer_model.php dengan menambahkan fungsi updateCustomer pada model yang akan menjadi file seperti ini

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Costumer_model extends Model
{
    protected $table = 'customer';
     
    public function getCustomert($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['customer_id' => $id]);
        }   
    }

    public function saveCustomer($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }

    public function updateCustomer($data, $id)
    {
        $query = $this->db->table($this->table)->update($data, array('customer_id' => $id));
        return $query;
    }
}

Pada model Customer_model.php kita telah menambahkan 1 buah fungsi lagi yaitu fungsi updateCustomer(), fungsi ini digunakan sebagai cara untuk mengupdate data kedalam database.

Kalau sudah selesai maka kita dapat melihat kembali hasilnya pada browser dengan menuliskan alamat localhost:8080/customer

Menghapus (Delete) data pada Database

Kita telah berhasil membuat 3 Fungsi dari CRUD yaitu menampilkan data atau READ, membuat data baru atau CREATE dan mengupdate data atau UPDATE. yang terakhir kita akan membuat DELETE atau menghapus data pada database.

1. Edit View

Hal pertama yang kita lakukan adalah membuka kembali file customer_view.php yang kemudian kita dapat menambahkan kode berikut

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Nama Pelanggan</title>
  </head>
  <body> 
     <a href="/customer/add_new">Add New Customer</a>
    <table>
        <thead>
            <tr>
                <th>Nama Pertama</th>
                <th>Nama Kedua</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($customer as $row):?>
            <tr>
                <td><?= $row['customer_firstname'];?></td>
                <td><?= $row['customer_lastname'];?></td>
                <td><a href="/customer/edit/<?= $row['customer_id'];?>">Edit</a></td>
                <td><a href="/customer/delete/<?= $row['customer_id'];?>">Delete</a></td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

2. Edit Controller

Hal kedua yang perlu kita lakukan adalah mengedit file Controller Customer.php dengan beberapa tambahan kode hingga menjadi keseluruhan file seperti ini

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Customer_model;
 
class Customer extends Controller
{
    public function index()
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomer();
        echo view('customer_view',$data);
    }

    public function add_new()
    {
        echo view('add_customer_view');
    }
 
    public function save()
    {
        $model = new Customer_model();
        $data = array(
            'customer_firstname'  => $this->request->getPost('customer_firstname'),
            'customer_lastname' => $this->request->getPost('customer_lastname'),
        );
        $model->saveCustomer($data);
        return redirect()->to('/customer');
    }

    public function edit($id)
    {
        $model = new Customer_model();
        $data['customer'] = $model->getCustomert($id)->getRow();
        echo view('edit_customer_view', $data);
    }
 
    public function update()
    {
        $model = new Customer_model();
        $id = $this->request->getPost('customer_id');
        $data = array(
            'customer_firstname'  => $this->request->getPost('customer_firstname'),
            'customer_lastname' => $this->request->getPost('customer_lastname'),
        );
        $model->updateCustomer($data, $id);
        return redirect()->to('/customer');
    }

    public function delete($id)
    {
        $model = new Customer_model();
        $model->deleteCustomer($id);
        return redirect()->to('/customer');
    }
}

pada controller kita menambahkan sebuah fungsi dengan nama delete(). fungsi ini berfungsi sebagai fungsi yang digunakan untuk menghapus data ke database melalui sebuah model.

3. Edit Model

Selanjutnya kita dapat menambahkan kode berikut pada model Customer_model.php dengan tambahan kode berikut

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Costumer_model extends Model
{
    protected $table = 'customer';
     
    public function getCustomert($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['customer_id' => $id]);
        }   
    }

    public function saveCustomer($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }

    public function updateCustomer($data, $id)
    {
        $query = $this->db->table($this->table)->update($data, array('customer_id' => $id));
        return $query;
    }

    public function deleteCustomer($id)
    {
        $query = $this->db->table($this->table)->delete(array('customer_id' => $id));
        return $query;
    }
}

Pada model Customer_model.php diatas kita telah menambahkan sebuah fungsi dengan nama deleteCustomer(). Fungsi ini digunakan sebagai cara untuk menghapus data pada database.

Setelah selesai membuat dan mengedit file yang diperlukan, kita dapat membuka kembali hasil project yang telah dibuat dengan cara membuka kembali browser dan menuliskan alamat localhost:8080/customer. Jika tidak terdapat pesan error maka hal yang kita kerjakan sudah sesuai dan benar.

Bisa kita lihat perbedaannya menggunakan CodeIgniter 3 dan CodeIgniter 4 dalam hal pembuatan CRUD sangatlah berbeda dari sisi sintaks dan metodenya. Bagi teman-teman yang ingin membaca perbedaan utamanya bisa langsung dibaca pada CI 3 versus CI 4 mana yang lebih baik?

You may also like