Tutorial Codeigniter
Tutorial Codeigniter
PHP memiliki banyak framework, saking banyaknya kadang kita dibuat galau untuk memilih
framework.
Milih framework saja masih bingung…
Framework dalam bahasa indonesia artinya kerangka kerja. Kerangka kerja untuk
membuat sesuatu (web).
Kelebihan Codeigniter
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain, 3
Performa cepat: Codeigniter merupakan framework yang paling cepat dibanding
framework yang lain. Karena tidak menggunakan template engine dan ORM yang
dapat memperlambat proses.
Konfigurasi yang minim (nearly zero configuration): tentu saja untuk
menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan
konfigurasi dengan mengubah beberapa file konfigurasi
seperti database.php atau autoload.php, namun untuk menggunakan codeigniter
dengan setting standard, anda hanya perlu mengubah sedikit saja pada file di folder
config.
Memiliki banyak komunitas: Komunitas CI di indonesia cukup ramai, tutorialnya
pun mudah dicari.
Dokumentasi yang lengkap: Codeigniter disertai dengan user_guideyang berisi
dokumentasi yang lengkap.
Mudah dipelajari pemula: Bagi pemula, CI sangat mudah dipelajari. Karena CI
tidak terlalu bergantung pada tool tambahan seperti composer, ORM, Template
Engine, dll.
Tedapat dua direktori penting di dalam CI: application dan system. Selain itu terdapat juga
direktori user_guide dan beberapa file. Berikut ini penjelasannya:
1. application berisi semua kode aplikasi. Di dalam direktori inilah kita akan menulis
semua kode aplikasi kita.
2. system berisi kode-kode inti dari Codeiniter. Jangan mengubah apapun di dalam
direktori ini. Jika kita ingin upgrade versi, kita cukup me-replace direktori ini dengan
yang baru.
3. tests berisi kode untuk melakukan unit testing.
4. user_guide berisi dokumentasi codeigniter. Kita bisa menghapus direktori ini saat web
sudah jadi.
5. .editor_config berisi konfigurasi untuk teks editor.
6. .gitignore berisi daftar file dan folder yang akan diabaikan oleh Git.
7. comspoer.json adalah file yang berisi keterangan project dan keterangan library yang
digunakan. File ini dibutuhkan oleh composer.
8. contributing.md adalah file yang berisi penjelasan cara berkontribusi di proyek CI.
Kita bisa menghapus file ini, apabila web sudah jadi.
9. license.txt adalah file yang berisi keterangan lisensi dari CI.
10. readme.rst sama seperti file contributing.md file ini berisi penjelasan dan informasi
tentang project CI. Kita juga bisa menghapus file ini saat web sudah selesai.
11. index.php adalah file utama dari CI. File yang akan dibuka pertamakali saat kita
mengakses web.
Selanjutnya silahkan buka direktori application dan perhatikan direktori yang ada di sana.
cache berisi cache dari aplikasi.
config berisi konfigurasi aplikasi.
o autoload.php tempat kita mendefinisikan autoload;
o config.php konfigurasi aplikasi;
o constants.php berisi konstanta;
o database.php konfigurasi database aplikasi;
o doctypes.php berisi definisi untuk doctype HTML;
o foreign_chars.php berisi karakter dan simbol;
o hooks.php berisi konfigurasi hooks;
o index.html untuk mencegah direct access;
o memcached.php untuk berisi konfigurasi untuk memcached;
o migration.php konfigurasi untuk migrasi;
o mimes.php berisi definisi tipe file;
o profiler.php konfigurasi untuk profiler;
o routers.php tempat kita menulis route aplikasi;
o smileys.php berisi kode untuk emoji;
o user_agents.php berisi definisi untuk user agents.
controller berisi kode untuk controller.
core berisi kode untuk custom core.
helpers berisi fungsi-fungsi helper.
hooks berisi kode untuk script hook.
language berisi string untuk bahasa, apabila web mendukung multibahasa.
libraries berisi library.
logs berisi logs dari aplikasi.
models berisi kode untuk model.
thrid_party berisi library dari pihak ketiga.
views berisi kode untuk view.
index.html file html untuk mencegah direct access.
Ini adalah tampilan awal yang akan kita lihat saat baru pertama instal CI.
Sebagai pemanasan, cobalah untuk mengubah teks Welcome to CodeIgniter!menjadi Selamat
datang di Toko Buah Petanikode.
Caranya:
Buka file application/views/welcome_message.php . Lalu ubah teks pada baris 71.
Selamat
Ini adalah perubahan pertama yang kamu buat.
Penjelasan:
File welcome_message.php yang berada di dalam direktori viewsmerupakan file yang
bertanggung jawab untuk menampilkan sesuatu. Di sini kita bisa menuliskan kode untuk
template dan CSS.
File welcome_message.php di-load oleh sebuah controller
application/controllers/welcome.php dengan kode:
Tutorial Codeigniter #2: MVC dan Routing, Konsep dasar CI yang Harus
Kamu Pahami
Pada tutorial sebelumnya, kita sudah belajar cara menginstal CI dan mengenal struktur
direktori dari CI.
Sekarang kita lanjut belajar tentang routing dan MVC.
Rencananya, kita akan membuat aplikasi online shop (olshop).
Namun, sebelum kita mulai membuat aplikasi dengan CI, ada baiknya berkenalan dulu
dengan kosep dasar CI.
Codeigniter adalah frameowrk yang menggunakan konsep MVC.
Apa itu MVC?
Mari kita bahas…
Fungsi index() adalah fungsi yang akan dieksekusi saat kita mengaksescontroller welcome.
Sekarang coba buka: http://localhost/tokobuah/index.php/welcome/index, maka kita akan
mendapatkan hal yang sama seperti membuka http://localhost/tokobuah/.
Membuat Beberapa Router
Setelah itu tambahkan dua buah file view di dalam direktori views dengan isi sebagai berikut.
views/about.php
<h1>About Us</h1>
<p>Ini adalah halaman about</p>
views/contact.php
<h1>Contact Us</h1>
<p>Ini adalah halaman Contact</p>
Route sudah kita tambahkan.
Sekarang coba buka:
http://localhost/tokobuah/index.php/welcome/about/
dan http://localhost/tokobuah/index.php/welcome/contact/
Hasilnya:
Ini formatnya:
http://example.com/[controller-class]/[controller-method]/[arguments]
Penambahan route pada routers.php dibutuhkan saat kita ingin membuat kustom route
untuk controller tertentu.
Apa Selanjutnya?
Kita sudah belajar tentang MVC dan Route. Ini memang masih dasar. Selanjutnya nanti kita
akan banyak menggunakannya.
Tutorial Codeigniter #3: Cara Menggunakan Bootstrap pada Codeigniter
http://localhost/tokobuah
https://www.petanikode.com
Cara mengatur Base URL, silahkan buka file config/config.php. Lalu isi
bagian $config['base_url'] = ''; menjadi seperti ini:
Konfigurasi Autoload
Berikutnya kita harus meload sebuah helper ke memori secara otomatis
melalui autoload.php.
Helper adalah fungsi-fungsi Codeigniter yang akan membantu kita dalam berbagai hal,
seperti: membuat form, mengakses URL, dll.
Salah satu helper yang kita butuhkan dalam pembuatan template adalah helper url.
Helper url berisi fungsi-fungsi untuk mengakses URL
seperti base_url(), site_url(), $this->uri, dll.
Cara mengaktifkan helper url:
Pertama buka file config/autoload.php, lalu cari $autoload['helper'].
Tambahkan url, sehingga menjadi seperti ini:
Membuat Konstanta
Setelah itu, buat konstanta SITE_NAME untuk menyimpan nama web. Konstanta ini nanti
kita perlukan untuk mengambil judul web pada template.
Bila kamu belum paham tentang konstanta di PHP, silahkan baca: Apa itu Konstanta?
Lanjut…
Silahkan buka file config/constants.php, lalu tambahkan kode berikut…
/*
|--------------------------------------------------------------------------
| Constants for Site
|--------------------------------------------------------------------------
|
*/
define('SITE_NAME', 'Tokobuah');
Setelah itu, kita akan mendapatkan sebuah file ZIP. Ekstrak file tersebut sehingga kita punya
file SB admin seperti ini:
Ini adalah file template yang akan kita gunakan pada proyek Codeigniter.
Setelah itu, kita bisa mulai membuat template untuk tampilan admin.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>SB Admin - Dashboard</title>
</head>
<body id="page-top">
</nav>
<div id="wrapper">
<div id="content-wrapper">
<div class="container-fluid">
<!-- Breadcrumbs-->
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="#">Dashboard</a>
</li>
<li class="breadcrumb-item active">Overview</li>
</ol>
</div>
<!-- /.container-fluid -->
</div>
<!-- /.content-wrapper -->
</div>
<!-- /#wrapper -->
</body>
</html>
Setelah itu, buat sebuah controller baru dengan nama Overview.php di dalam
direktori controllers/admin.
Perhatikan nama file untuk controller, di depannya selalu diawali dengan huruf besar atau
kapital.
Isi controller Overview.php dengan kode berukut:
<?php
$route['admin'] = 'admin/overview';
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>SB Admin - Dashboard</title>
</head>
<body id="page-top">
</nav>
<div id="wrapper">
<div id="content-wrapper">
<div class="container-fluid">
<!-- Breadcrumbs-->
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="#">Dashboard</a>
</li>
<li class="breadcrumb-item active">Overview</li>
</ol>
</div>
<!-- /.container-fluid -->
</div>
<!-- /.content-wrapper -->
</div>
<!-- /#wrapper -->
Woho… keren
Apa Selanjutnya?
Tugas kita masih belum selesai.
Karena kita baru hanya menambahkan Bootstrap dan membuat template awalnya.
Selanjutnya kita akan membuat partials untuk menata template agar lebih efektif dan
mudah digunakan.
Pada tutorial sebelumnya, kita sudah berhasil menambahkan Bootstrap pada proyek CI.
Namun, masih ada yang kurang…
Template masih dibuat dalam satu file saja. Ini nanti akan bermasalah ketika kita membuat
halaman baru.
Permsalahannya:
Kita akan menulis kode yang sama berulang-ulang dalam file template yang berbeda.
Bagaimana nanti kalau ada perubahan?
Misal, perubahan link pada navbar.
Maka kita harus mengubah semua file template yang kita buat satu per satu.
Tentu ini kurang efektif, karena kita akan menghabiskan banyak waktu dan tentaga untuk
mengubahnya.
Salah satu solusi dari permasalahan ini yaitu dengan menggunakan partials.
Dengan partials kita akan membagi template menjadi bagian-bagian kecil yang dapat
digunakan kembali.
Jika kamu pernah belajar Laravel, kamu mungkin pernah mendengar fungsi yield yang
memungkinkan kita untuk mengimpor bagian template yang lain. Fungsi yield di Laravel
sering digunakan untuk membuat layout.1
Lalu di Codeigniter, apakah ada fungsi yield?
Tidak, di Codeigniter tidak ada fungsi yield. Namun, kita bisa menggunakan fungsi $this-
>load->view() sebagai penggantinya. Karena fungsinya hampir sama dengan yield, yaitu
untuk me-load sebuah view.2
Fungsi $this->load->view() ini, nanti akan kita gunakan untuk me-load partials ke dalam
template.
Tapi sebelum itu, kita harus membuat dulu partial-nya.
Membuat Partial Template
Partial merupakan teknik untuk membagi template menjadi bagian-bagian kecil agar mudah
digunakan.
Sebenarnya teknik ini pertama saya dengar saat membuat template Hugo…
…dan rencananya akan saya coba juga terapkan untuk template aplikasi Codeigniter.
Sekarang coba buka file index.html pada SB Admin dan perhatikan, apa saja partial yang bisa
kita buat dari sana?
Berdasarkan gambar di atas, berikut ini partial yang bisa kita buat:
head.php untuk meinyimpan isi dari tag <head>;
navbar.php untuk menyimpan kode navbar;
sidebar.php untuk menyimpan kode menu bagian samping (sidebar);
breadcrumb.php untuk menyimpan kode link breadcrumb;
scrolltop.php untuk menyimpan kode tombol scrolltop;
footer.php untuk menyimpan kode footer;
modal.php untuk menyimpan kode modal;
js.php untuk meload javascript.
Mari kita buat satu per satu…
Tapi sebelum itu, silahkan buat dulu direktori baru bernama _partials di dalam
views/admin/.
Partial navbar.php
Partial ini hanya berisi kode untuk menu navbar. Berikut ini isi kode dari partial navbar.php:
<nav class="navbar navbar-expand navbar-dark bg-success static-top">
<a class="navbar-brand mr-1" href="<?php echo site_url('admin') ?>"><?php echo SITE_NAME ?></a>
</nav>
Pada kode navbar, kita menggunakan konstanta SITE_NAME untuk menampilkan nama web di
navbar.
Lalu kita menggunakan class bg-success untuk mengubah warnanya menjadi hijau. Supaya
Partial sidebar.php
Partial ini berisi kode untuk menampilkan menu bagian samping (sidebar). Berikut ini isi
kode sidebar.php:
<!-- Sidebar -->
<ul class="sidebar navbar-nav">
<li class="nav-item <?php echo $this->uri->segment(2) == '' ? 'active': '' ?>">
<a class="nav-link" href="<?php echo site_url('admin') ?>">
<i class="fas fa-fw fa-tachometer-alt"></i>
<span>Overview</span>
</a>
</li>
<li class="nav-item dropdown <?php echo $this->uri->segment(2) == 'products' ? 'active': '' ?>">
<a class="nav-link dropdown-toggle" href="#" id="pagesDropdown" role="button" data-
toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<i class="fas fa-fw fa-boxes"></i>
<span>Products</span>
</a>
<div class="dropdown-menu" aria-labelledby="pagesDropdown">
<a class="dropdown-item" href="<?php echo site_url('admin/products/add') ?>">New
Product</a>
<a class="dropdown-item" href="<?php echo site_url('admin/products') ?>">List Product</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
<i class="fas fa-fw fa-users"></i>
<span>Users</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
<i class="fas fa-fw fa-cog"></i>
<span>Settings</span></a>
</li>
</ul>
Pada kode di atas, kita menggunakan segment URI untuk mengecek apakah menu itu sedang
dibuka atau tidak.
Jika menu sedang dibuka, maka tambahkan class active.
Misalnya ini:
<?php echo $this->uri->segment(2) == 'products' ? 'active': '' ?>
Kode ini akan mengecek, apakah halaman /admin/products sedang dibuka atau tidak.
Oya, halaman untuk menu products, users, dan settings belum kita buat. Insya’allah di
tutorial berikutnya akan kita buat.
Partial breadcrumb.php
Partial ini berisi kode untuk menampilkan breadcrumb. Breadcrumbs adalah sebuah link
navigasi yang menampilkan link halaman sebelumnya dari halaman tempat kita berada.
Berikut ini kode untuk parital breadcrumb.php:
<!-- Breadcrumbs-->
<ol class="breadcrumb">
<?php foreach ($this->uri->segments as $segment): ?>
<?php
$url = substr($this->uri->uri_string, 0, strpos($this->uri->uri_string, $segment))
. $segment;
$is_active = $url == $this->uri->uri_string;
?>
Partial scrolltop.php
Partial ini berisi kode untuk tombol scrolltop. Berikut ini isinya:
<!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i>
</a>
Partial footer.php
Partial ini berisi kode untuk bagian footer, berikut ini isi kode untuk partial footer.php:
<!-- Sticky Footer -->
<footer class="sticky-footer">
<div class="container my-auto">
<div class="copyright text-center my-auto">
<span>Copyright © <?php echo SITE_NAME ." ". Date('Y') ?></span>
</div>
</div>
</footer>
Pada kode partial footer.php, kita menggunakan konstanta SITE_NAME untuk menampilkan
nama website. Lalu menggunakan fungsi Date('Y') untuk menampilkan tahun saat ini.
Partial modal.php
Partial ini berisi kode-kode untuk modal. Berikut ini isinya:
<!-- Logout Modal-->
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">Select "Logout" below if you are ready to end your current
session.</div>
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
<a class="btn btn-primary" href="login.html">Logout</a>
</div>
</div>
</div>
</div>
Kita juga nanti bisa tambahkan beberapa modal di sini.
Partial js.php
Partial ini berisi kode-kode untuk me-load Javascript. Berikut ini kode untuk js.php:
<!-- Bootstrap core JavaScript-->
<script src="<?php echo base_url('assets/jquery/jquery.min.js') ?>"></script>
<script src="<?php echo base_url('assets/bootstrap/js/bootstrap.bundle.min.js') ?>"></script>
<div id="wrapper">
<div id="content-wrapper">
<div class="container-fluid">
<!--
karena ini halaman overview (home), kita matikan partial breadcrumb.
Jika anda ingin mengampilkan breadcrumb di halaman overview,
silahkan hilangkan komentar (//) di tag PHP di bawah.
-->
<?php //$this->load->view("admin/_partials/breadcrumb.php") ?>
<!-- Icon Cards-->
<div class="row">
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-primary o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-comments"></i>
</div>
<div class="mr-5">26 New Messages!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-warning o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-list"></i>
</div>
<div class="mr-5">11 New Tasks!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-success o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-shopping-cart"></i>
</div>
<div class="mr-5">123 New Orders!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-danger o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-life-ring"></i>
</div>
<div class="mr-5">13 New Tickets!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- /.content-wrapper -->
</div>
<!-- /#wrapper -->
</body>
</html>
Pada kode template tersebut, kita me-load partial dengan fungsi $this->load->view().
Maka hasilnya akan seperti ini:
Mantap…
[Download Source Code Tutorial ini: tutorial-4.zip]
Apa Selanjutnya?
Sepertinya masalah template sudah selesai. Kamu juga bisa mengembangkannya sesuai
kreasi sendiri.
Silahkan pelajari Bootstrap untuk mengetahui class-class CSS yang dapat digunakan.
Berikutnya kita bisa mulai membuat fitur baru, seperti:
fitur CRUD Produk.
fitur upload file.
fitur login untuk admin.
dll.
Tutorial Codeigniter #5: Cara Membuat Fitur CRUD yang Benar!
Pada tutorial sebelumnya, kita sudah belajar bagaimana cara membuat template admin yang benar dan
efisien.
Kita juga sudah membahas tentang Controller dan routing pada Codeigniter.
Nah! yang belum…
Pembahasan tentang database dan model.
Oke, judulnya ini cukup clickbait: “Cara Membuat Fitur CRUD di Codeigniter yang Benar!”
Mengapa saya bilang demikian?
Karena, beberapa tutorial Codeigniter yang pernah saya ikuti tidak mengajari praktek terbaik (best
practice) dalam ngoding CI.
Bukan berarti mereka salah…
…dan mengklaim cara pada tutorial ini yang paling benar.
Semua cara dan solusi, benar.
Hanya saja, jika kita menulis kode sembarangan, akibatnya bisa rugi.
Saya pernah mengerjakan project menggunakan Codeigniter, lalu kode-kode yang saya tulis sangat
berantakan dan kotor.
Hasilnya:
Project gagal, karena saya tidak mau mengembangkannya lagi.
Ribet!
Saya lebih memilih ngoding ulang dari awal daripada mengembangkan kode tersebut.
Seperti itulah rasanya menulis kode yang buruk dan kotor.
Namun, dari hasil pengulangan tersebut. Saya belajar banyak hal.
Seperti, bagaimana sebaiknya cara menerima data dari form. Apakah langsung di simpan ke database,
atauhkah divalidasi dulu.
Ternyata yang benar adalah:
Data harus divalidasi dulu.
Jika tidak divalidasi, bisa jadi nanti akan banyak bugs dan rentan dengan serangan XSS.
Setelah itu, buat tabel products dengan 5 kolom. Tabel ini nanti akan menyimpan data produk.
TODO:
Membuat Database;
Konfigurasi Codeigntier
Membuat Model untuk Tabel;
Membuat Controller;
Membuat View;
Membuat Form Add;
Membuat Form Edit;
Membuat Fitur Hapus Data;
Berikutnya kita akan melakukan konfigurasi pada Codeigniter agar dapat terhubung dengan
database.
Konfigurasi Codeigniter
Silahkan buka config/database.php, kemudian isi seperti ini:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'dian',
'password' => 'kopi',
'database' => 'tokobuah',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Ini artinya, kita akan me-load library database dan session secara otomatis.
Apa fungsinya?
Library database akan menyediakan fungsi-fungsi untuk operasi database. Kita butuh ini,
karena kita akan menggunakan database dalam aplikasi;
Library session menyediakan fungsi-fungsi untuk mengakses variabel $_SESSION. Kita
butuh ini untuk menampilkan flash message dan membuat login.
Dengan demikian konfigurasi selesai…
TODO:
Membuat Database;
Konfigurasi Codeigntier
Membuat Model untuk Tabel;
Membuat Controller;
Membuat View;
Membuat Form Add;
Membuat Form Edit;
Membuat Fitur Hapus Data;
Jika ada yang ingin kita konfigurasi lagi atau mau tambah library lagi, nanti kita bisa ubah
konfigurasinya.
Untuk saat ini, kita cukup butuh konfigurasi database dan autoload librarysaja.
Berikutnya, kita akan mulai menulis kode untuk model.
public $product_id;
public $name;
public $price;
public $image = "default.jpg";
public $description;
// nama kolom di tabel, harus sama huruf besar dan huruf kecilnya!
public $product_id;
public $name;
public $price;
public $image = "default.jpg";
public $description;
Ini adalah properti atau variabel yang kita butuhkan dalam model Product.
Pada properti $_tabel kita memberikan modifier private, karena properti ini hanya akan digunakan
pada class ini saja.
Jika kamu pernah belajar OOP, pasti paham.
Lalu pada properti $image, kita langsung mengisi nilainya dengan "default.jpg".
Ini nanti akan menjadi nilai default-nya, sebenarnya kita bisa saja tidak isi demikian.
Karena di tabel sudah kita berikan nilai default-nya.
Selanjutnya silahkan perhatikan method rules():
public function rules()
{
return [
['field' => 'name',
'label' => 'Name',
'rules' => 'required'],