Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Tutorial CRUD Codeigniter 4

16 min read

Tutorial CRUD Codeigniter 4

Pada kesempatan yang berbahagia ini, ilmucoding akan sharing tentang tutorial CRUD Codeigniter 4. CRUD adalah jalan yang sangat basic ketika ingin mengetahui suatu framework bahasa pemrograman. Banyak programmer yang belajar basic pemrograman mulai dari bagaimana mereka membuat CRUD di framework tersebut.

Boleh dikatakan, dengan mempelajari CRUD maka akan menjadi modal awal menguasai suatu framework. Melalui CRUD, kita akan bisa mengembangkannya ke tahap lain. Misalnya join, order by, group by dan lain-lain. Intinya, kita membutuhkan pengetahuan bagaimana suatu framework bekerja melalui contoh manajemen CRUD.

Framework yang akan kita bahas kali ini adalah Codeigniter 4. Jika Anda belum familiar ataupun belum menginstall codeigniter 4, silahkan membaca tutorial ilmucoding sebelumnya. Jika sudah, mari kita mulai ngoding.

Let’s go!

Tutorial CRUD Codeigniter 4

Sebelum kita mulai ngoding, ada tahapan-tahapan yang mesti kita lakukan, yaitu:

  • Tahap Persiapan
  • Tahapan Ngoding

Kita masuk pada tahap yang pertama.

Tutorial Tahap Persiapan CRUD Codeigniter 4

Di tutorial kali ini saya menggunakan Codeigniter 4 yang bisa Anda download di situs resminya.

Kemudian saya menggunakan JQuery dan Bootstrap 4 secara online. Jadi, pastikan perangkat Anda terhubung ke internet.

Spesifikasi yang cukup untuk menginstall codeigniter 4 pernah saya jelaskan di artikel sebelumnya.

Berikut langkahnya:

1# Download Codeigniter 4.

2# Pindahkan hasil download .zip ke folder htdocs (saya asumsikan Anda menggunakan XAMPP).

3# Extract file .zip dan rename menjadi crud_ci4.

Selesai…

Tahapan Ngoding

Sebagaimana tutorial pada umumnya, tidak akan lengkap tanpa adanya studi kasus. Di tutorial ini saya akan mencoba menggunakan product sebagai contohnya. Kita akan mempelajarinya langkah demi langkah. Harapannya Anda bisa mengikuti secara jelas, mendetail dan mudah dipahami.

Berikut langkah-langkahnya:

Membuat dan Mengkonfigurasi Database

Silahkan buka localhost/phpmyadmin kemudian buat database dengan nama crud_ci4.

Kemudian buat table product dengan cara ketik command berikut pada terminal:

php spark migrate:create product

Sekarang akan muncul file baru di folder app/Databases/Migrations. Buka yang ujungnya ada _product.php, kemudian modifikasi pada function up() menjadi:

public function up()
{
    $this->forge->addField([
        'product_id'          => [
                'type'           => 'INT',
                'constraint'     => 11,
                'unsigned'       => TRUE,
                'auto_increment' => TRUE
        ],
        'product_name'       => [
                'type'           => 'VARCHAR',
                'constraint'     => '100',
        ],
        'product_description' => [
                'type'           => 'TEXT',
                'null'           => TRUE,
        ],
    ]);
    $this->forge->addKey('product_id', TRUE);
    $this->forge->createTable('product');
} 

Kode di atas berfungsi untuk membuat struktur table di database. Jadi, bye bye cara manual. Hehehe.

Setelah itu, buka file Database.php di direktori app/Config/Database.php

Cari baris kode berikut:

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,
]; 

Ubah menjadi:

public $default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'crud_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,
]; 

Sebenarnya ada cara yang lebih simple. Yaitu dengan mengubah di .env.

Silahkan ubah file env jadi .env (ada titik di depannya).

Kemudian cari kode berikut:

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

Ubah menjadi:

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

… dan jangan lupa ubah environmentnya menjadi development

CI_ENVIRONMENT = development

Kalau sudah semua, jalankan command berikut di terminal:

php spark migrate

Hasilnya sungguh menakjubkan, lihat (Isi product saya insert manual):

Cara Membuat Create Read Update Delete (CRUD) di Codeigniter 4 - 7.png

Sampai di tahap ini maka membuat dan mengkonfigurasi database sudah selesai.

Selamat…

Membuat Controller Product

Buat file bernama Product.php dan simpan di direktori app/Controllers/Product.php

Kemudian ketik kode berikut di dalam Product.php

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\ProductModel;

class Product extends Controller
{

    public function __construct() {

        // Mendeklarasikan class ProductModel menggunakan $this->product
        $this->product = new ProductModel();
        /* Catatan:
        Apa yang ada di dalam function construct ini nantinya bisa digunakan
        pada function di dalam class Product 
        */
    }

    public function index()
    {
        $data['product'] = $this->product->getProduct();
        echo view('product/index', $data);
    } 
}

Saya tidak memberikan kode secara penuh, namun akan saya modifikasi tahap demi tahap agar lebih mudah dipahami. Sebagai contoh, saya akan memberikan contoh function index() di awal. Namun Anda akan menemukan function lainnya di tahap selanjutnya.

Membuat Model Product

Anda bisa membuat file bernama ProductModel.php kemudian simpan di direktori app/Models/ProductModel.php.

Kemudian silahkan ketik kode berikut:

 <?php namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = "product";

    public function getProduct($id = false)
    {
        if($id === false){
            return $this->table('products')
                        ->get()
                        ->getResultArray();
        } else {
            return $this->table('products')
                        ->where('product_id', $id)
                        ->get()
                        ->getRowArray();
        }   
    } 
}

Sebagaimana controller, saya hanya memberikan getProduct($id = false) terlebih dahulu. Untuk read, update dan delete ada di tahapan berikutnya.

Membuat Halaman View Product

Ini akan menjadi bagian halaman view yang berguna untuk gambaran tutorial CRUD Codeigniter 4. Silahkan buat folder bernama product di direktori app/Views. Kemudian buat file bernama index.php di dalamnya.

Kodenya adalah sebagai 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>Product</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
</head>
<body>

    <div class="container mt-5 mb-5 text-center">
        <h4>Tutorial CRUD Menggunakan Codeigniter 4 - Ilmu Coding</h4>
    </div>
    <div class="container">
        <?php
        if(!empty(session()->getFlashdata('success'))){ ?>

        <div class="alert alert-success">
            <?php echo session()->getFlashdata('success');?>
        </div>
            
        <?php } ?>
        <?php if(!empty(session()->getFlashdata('info'))){ ?>

        <div class="alert alert-info">
            <?php echo session()->getFlashdata('info');?>
        </div>
            
        <?php } ?>

        <?php if(!empty(session()->getFlashdata('warning'))){ ?>

        <div class="alert alert-warning">
            <?php echo session()->getFlashdata('warning');?>
        </div>
            
        <?php } ?>
    </div>
    <div class="container">
        <a href="<?php echo base_url('product/create'); ?>" class="btn btn-success float-right mb-3">Tambah Produk</a>
        <div class="table-responsive">
            <table class="table table-bordered">
                <thead>
                    <th>No</th>
                    <th>Name</th>
                    <th>Description</th>
                    <th>Action</th>
                </thead>
                <tbody>
                    <?php 
                    foreach($product as $key => $data) { ?>
                    <tr>
                        <td><?php echo $key+1; ?></td>
                        <td><?php echo $data['product_name']; ?></td>
                        <td><?php echo $data['product_description']; ?></td>
                        <td>
                            <div class="btn-group">
                                <a href="<?php echo base_url('product/edit/'.$data['product_id']); ?>" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
                                <a href="<?php echo base_url('product/delete/'.$data['product_id']); ?>" class="btn btn-danger btn-sm" onclick="return confirm('Apakah Anda yakin ingin menghapus produk <?php echo $data['product_name']; ?> ini?')"><i class="fas fa-trash-alt"></i></a>
                            </div>
                        </td>
                    </tr>
                    <?php } ?>
                </tbody>
            </table>
        </div>
    </div>
    
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html> 

Ketik command berikut untuk menjalankannya:

php spark serve

Now, buka localhost:8080/product di browser Anda.

Hasilnya:

Tutorial CRUD codeigniter 4

Oke, halaman index.php, controller product dengan method index() dan model product dengan method get_product() sudah terhubung.

Sekarang, kita bisa modifikasi yang lainnya.

Membuat Fitur Create

Ikuti tutorial crud codeigniter 4 ini step by step dan source code di bawah ini:

Pada app/Views/product, buat file baru bernama create.php

Scriptnya:

<!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>Product</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
</head>
<body>

    <div class="container mt-5 mb-5 text-center">
        <h4>Tutorial CRUD Menggunakan Codeigniter 4 - Ilmu Coding</h4>
    </div>
    <div class="container">
        <h4>Form Tambah Produk</h4>
        <hr>
        <form action="<?php echo base_url('product/store'); ?>" method="post">

            <div class="form-group">
                <label for="">Nama Produk</label>
                <input type="text" name="product_name" class="form-control" placeholder="Nama Produk">
            </div>
            <div class="form-group">
                <label for="">Deskripsi Produk</label>
                <textarea name="product_description"class="form-control" placeholder="Deskripsi Produk"></textarea>
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-primary">Simpan</button>
            </div>
        </form>
    </div>
    
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html> 

Di app/Controllers/Product.php tambahkan function create() dan store() berikut ini:

function create()

public function create()
{
    return view('product/create');
} 

function store()

public function store()
{
    // Mengambil value dari form dengan method POST
    $name = $this->request->getPost('product_name');
    $desc = $this->request->getPost('product_description');

    // Membuat array collection yang disiapkan untuk insert ke table
    $data = [
        'product_name' => $name,
        'product_description' => $desc
    ];

    /* 
    Membuat variabel simpan yang isinya merupakan memanggil function 
    insert_product dan membawa parameter data 
    */
    $simpan = $this->product->insert_product($data);

    // Jika simpan berhasil, maka ...
    if($simpan)
    {
        // Deklarasikan session flashdata dengan tipe success
        session()->setFlashdata('success', 'Created product successfully');
        // Redirect halaman ke product
        return redirect()->to(base_url('product')); 
    }
} 

Terakhir, tambahkan method insert_product() dengan parameter $data di app/Models/ProductModel.php.

Kodenya:

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

Sekarang Anda bisa uji coba dengan membuka url:

localhost:8080/product/create

Hasilnya:

Cara Membuat Create Read Update Delete (CRUD) di Codeigniter 4 - 3.png

Cobalah isi data dan kemudian klik Simpan.

Membuat Fitur Edit

Seperti biasa, silahkan buat file baru bernama edit.php di direktori app/Views/product.

Scriptnya:

<!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>Product</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
</head>
<body>

    <div class="container mt-5 mb-5 text-center">
        <h4>Tutorial CRUD Menggunakan Codeigniter 4 - Ilmu Coding</h4>
    </div>
    <div class="container">
        <h4>Form Edit Produk</h4>
        <hr>
        <form action="<?php echo base_url('product/update/'.$product['product_id']); ?>" method="post">

            <div class="form-group">
                <label for="">Nama Produk</label>
                <input type="text" name="product_name" value="<?php echo $product['product_name']; ?>" class="form-control" placeholder="Nama Produk">
            </div>
            <div class="form-group">
                <label for="">Deskripsi Produk</label>
                <textarea name="product_description" class="form-control" placeholder="Deskripsi Produk"><?php echo $product['product_description']; ?></textarea>
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-primary">Update</button>
            </div>
        </form>
    </div>
    
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html> 

Kemudian pada app/Controllers/Product.php tambahkan:

function edit($id):

public function edit($id)
{
    // Memanggil function getProduct($id) dengan parameter $id di dalam ProductModel dan menampungnya di variabel array product
    $data['product'] = $this->product->getProduct($id);
    // Mengirim data ke dalam view
    return view('product/edit', $data);
} 

function update($id):

public function update($id)
{
    // Mengambil value dari form dengan method POST
    $name = $this->request->getPost('product_name');
    $desc = $this->request->getPost('product_description');

    // Membuat array collection yang disiapkan untuk insert ke table
    $data = [
        'product_name' => $name,
        'product_description' => $desc
    ];

    /* 
    Membuat variabel ubah yang isinya merupakan memanggil function 
    update_product dan membawa parameter data beserta id
    */
    $ubah = $this->product->update_product($data, $id);
    
    // Jika berhasil melakukan ubah
    if($ubah)
    {
        // Deklarasikan session flashdata dengan tipe info
        session()->setFlashdata('info', 'Updated product successfully');
        // Redirect ke halaman product
        return redirect()->to(base_url('product')); 
    }
} 

Terakhir pada bagian app/Models/ProductModel.php tambahkan:

function update_product($data, $id):

public function update_product($data, $id)
{
    return $this->db->table($this->table)->update($data, ['product_id' => $id]);
}  

Untuk menguji coba, di buka halaman:

localhost:8080/product

Kemudian klik icon edit.

Hasilnya:

Cara Membuat Create Read Update Delete (CRUD) di Codeigniter 4 - 4.png

Ubah sedikit data kemudian klik update.

Membuat Fitur Delete

Pertama tambahkan method delete($id) di controller app/Controllers/Product.php:

public function delete($id)
{
    // Memanggil function delete_product() dengan parameter $id di dalam ProductModel dan menampungnya di variabel hapus
    $hapus = $this->product->delete_product($id);

    // Jika berhasil melakukan hapus
    if($hapus)
    {
            // Deklarasikan session flashdata dengan tipe warning
        session()->setFlashdata('warning', 'Deleted product successfully');
        // Redirect ke halaman product
        return redirect()->to(base_url('product'));
    }
} 

Kedua tambahkan function delete_product($id) di dalam app/Models/ProductModel.php:

public function delete_product($id)
{
    return $this->db->table($this->table)->delete(['product_id' => $id]);
} 

Masih menjalankan localhost:8080/product, klik icon tong sampah:

Hasilnya:

Cara Membuat Create Read Update Delete (CRUD) di Codeigniter 4 - 5.png

Klik OK untuk menghapus data.

Final:

Cara Membuat Create Read Update Delete (CRUD) di Codeigniter 4 - 6.png

Penutup

Tak terasa tutorial kali ini sudah selesai begitu cepat dan menyenangkan. Akhirnya, kita sudah belajar membuat CRUD menggunakan framework yang masih hangat dibicarakan ini. Siapa lagi kalau bukan Codeigniter 4.

Tutorial CRUD Codeigniter 4 ini mudah-mudahan bisa bermanfaat buat pembaca sekalian. Khususnya dalam memahami Codeigniter versi ke 4 ini yang cara install dan menjalankan Codeigniter 4 cukup banyak perbedaaan dengan versi ke 3.

Akhir kata, mohon maaf jika ada kesalahan dalam kata maupun istilah.

Selamat belajar …

Download Source Code

Silahkan download source code project melalui link berikut ini:

Download Source Code

Update Issue

  1. Ketika ketik php spark server kemudian terjadi error merupakan kesalahan yang ada di controller Home. Sudah diperbaiki.
  2. Perbaikan tambahan setting environment dari production ke development.
  3. Kesalahan penamaan database dari ci4 ke crud_ci4

Jika masih ada error atau bug lagi, silahkan berikan komentarnya di bawah…

Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

44 Replies to “Tutorial CRUD Codeigniter 4”

    1. Terima kasih Mas atas kunjungannya. Untuk tutorial berikutnya bisa divisit ke >>https://ilmucoding.com/tutorial-custom-pagination-dengan-codeigniter-4-dan-bootstrap/

      Bacanya kalau lagi senggang aja. Hehehe.

  1. waktu menjalankan command php spark …
    ada error Fatal error: Default value for parameters with a class type hint can only be NULL in E:\wamp\www\ci4\system\Common.php on line 107
    cara memperbaikinya bagaimana ya?

    1. Dicoba pakai xampp versi 7.2 ke atas, nanti kalau nggak bisa juga coba kabarin mas. Kalau WAMP nya itu php versi berapa ya?

      1. lebih ke ragam views om, view cell, renderer. saya keram otak sama itu…kalau berkenan sekalian restful ya om…hehehe…

  2. Baru masuk tahap “Membuat dan Mengkonfigurasi Database” aja udh error 🙁

    > php spark migrate

    No such file or directory
    /Applications/MAMP/htdocs/ci4/system/Database/MySQLi/Connection.php – 225.

    Saya menggunakan MacBook dan menggunakan MAMP. Pengaturan app/Config/Database sudah disesuaikan dgn DB dan user yg digunakan tp tampil error seperti diatas 🙁
    Mohon arahannya, baru mau belajar huhuhuh :(((

      1. Coba di cek, Mas. Itu pasti karena file sparknya nggak ada. Emang pas download sebagian ada file sparknya, sebagian nggak ada. Ada paket lengkap ada yang nggak.

    1. Coba /Applications/MAMP/htdocs/ci4/system/Database/MySQLi/Connection.php
      line 106
      ubah
      $socket = null;
      menjadi
      $socket = ‘/Applications/MAMP/tmp/mysql/mysql.sock’;
      trus jalankan migrate ulang

      1. @amel Alhamdulillah makasih masukkannya, dari kemarin saya error disana mulu.
        btw untuk content creatornya makasih udah nyedian tutor ini!!

  3. bang saya ada eror saat jalanin di php spark serve kira kira apa ya?

    unuk coding sudah saya cek semua dan migrate berhasil hanya menjalankan php spark serve saja

    1. Solusinya bisa pakai localhost/namaproject/public mas kalau manualnya.

      Saya udah update issue untuk source codenya ya.

  4. Om, saya ada error di bagian “new ProductModel();”
    Kira2 salah dari mananya tuhh??
    Padahal sudah ikuti smua langkah sesuai yang di atas.
    Mohon pencerahannya.. Terima kasih.

    1. Penamaan class ProductModelnya sudah bener, Mas?

      Saya udah update issue untuk source codenya ya.

    2. sama troublenya, tapi punya saya sudah berhasil jalan, cek lagi gan dari use namespacenya udah sama/bener belum dengan nama modelnya

  5. padahal cuma copas dari sini kok error ya bang?
    We seem to have hit a snag. Please try again later…

    1. Coba environmentnya dijadikan development dulu biar errornya lebih jelas.
      Untuk cara mengubah environment dari production jadi development bisa dibaca di sini.
      Nah, kalau sudah jelas errornya, akan lebih mudah memperbaiki.

      Saya udah update issue untuk source codenya ya.

  6. wiiih mantep mas, makasih sharingnya. bnyk code yg disimple kan yaa dibanding ci3 nanti taa nyoba.. masih newbi :’)

  7. muncul “Whoops!
    We seem to have hit a snag. Please try again later…”
    masalahnya dmn Y gan?

  8. alhamdulillah akhirnya ada juga yg bahas untuk framework ci4

    om untuk buat dynamic element seperti header dan footer dan beberapa sisi lainya ada referensi gag ??
    soalnya saya ketika menggunakan ci3 itu buat folder assets di root directory, sedangkan di ci4 hanya berlaku di dalam public directory, ketika saya potong dan panggil malah tidak berjalan…

    jika ada mohon email kan update ke ziaulkamal1109@gmail.com

  9. Wih mantep sekali di ane nyoba langsung jalan. Makasih banyak gan

  10. mau nanya, ketika saya menjalankan ‘php spark migrate’ muncul error seperti ini

    PS C:\xampp\htdocs\tokoencit> php spark migrate

    CodeIgniter CLI Tool – Version 4.0.3 – Server-Time: 2020-06-10 03:15:14am

    Running all new migrations…

    Access denied for user ”@’localhost’ (using password: NO)
    C:\xampp\htdocs\tokoencit\system\Database\MySQLi\Connection.php – 225

    PS C:\xampp\htdocs\tokoencit> php spark migrate

    CodeIgniter CLI Tool – Version 4.0.3 – Server-Time: 2020-06-10 03:19:29am

    Running all new migrations…

    Access denied for user ”@’localhost’ (using password: NO)
    C:\xampp\htdocs\tokoencit\system\Database\MySQLi\Connection.php – 225

    1. Cek koneksi di Database.php atau .env mas.

      Itu settingannya ada yang belum bener di dua file atas.

      Cek juga apa Db yang dibapakai menggunakan password atau nggak.

  11. public function getProduct($id = false)
    {
    if($id === false){
    return $this->table(‘products’)
    ->get()
    ->getResultArray();
    } else {
    return $this->table(‘products’)
    ->where(‘product_id’, $id)
    ->get()
    ->getRowArray();
    }
    }

    Permisi mas saya mau nnya mksud dri kodingan ini apa yaa .hehhee

    1. Fungsinya untuk mendapatkan data product yang diambil dari database. Jika $id kosong, maka dia akan mengambil semua data product. Sebaliknya jika terdapat $id maka ia akan mengambil data berdasarkan primary keynya = $id.

      Semoga bermanfaat.

      1. oh jdi walaupun $idnya kosong ttep bisa mengambil semua datanya ya mas .. dan jika terdapat $idnya maka iya akan mengambil datanya berdasarkan $idnya ..

          1. mas saya ada eror seperti ini Invalid file: product/index.php kira” kesalahanya dmna yaa

  12. public function getProduct($id = false)
    {
    if($id === false){
    return $this->table(‘products’)
    ->get()
    ->getResultArray();
    } else {
    return $this->table(‘products’)
    ->where(‘product_id’, $id)
    ->get()
    ->getRowArray();
    }
    }

    dimethod ini kenapa parameter yg kita masukin di $this->table(‘products’) itu ‘products’ ya? , ada tambahan ‘s’ dibelakangnya?

  13. permisi mas saya kn sdh ikutin yg kayak mas tpi punya saya detail,edit, hapus,sma tambahnya gkbisa mas. ini yg salah d mna yh mas

Leave a Reply

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

Jika terbantu dengan artikel ini, silahkan share, beri komentar dan "klik" 1 kali pada iklan ya.