Initekno.com – Melanjutkan artikel tentang CRUD menampilkan data, dan kali ini kita akan menambahkan data atau insert data. Kemaren kalian menambahkan data dengan cara manual melalui xampp/phpmyadmin dan sekarang kita akan membuat form untuk menambahkan data baru. Silahkan baca artikel tentang menampilkan data terlebih dahulu pada link berikut ini
Tutorial CRUD Codeigniter 4 Bahasa Indonesia – Menampilkan Data
Disini kita sifatnya hanya meneruskan artikel kelanjutannya saja, dan hanya bermain dengan sedikit controller dan routes, adapun untuk models sama dengan artikel pada bagian menampilkan data.
Daftar Isi
Membuat Controller
Pembuatan controller disini cukup mudah sekali, kalian hanya perlu menambahkan method baru dengan nama addMember() kemudian buat validasi form dan kumpulkan name masing-masing form dalam array data, kemudian jalankan perintah ->save,
jangan lupa untuk menambahkan setFlashdata sebagai informasi kepada user bahwa data telah dimasukkan dalam tabel.
Untuk kode lengkapnya seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?php namespace App\Controllers; use App\Models\MemberModel; class Member extends BaseController { public function addMember() { if ($this->request->getMethod() == "post") { $rules = [ "name" => "required|min_length[3]|max_length[40]", "email" => "required|valid_email", "mobile" => "required|min_length[9]|max_length[15]", ]; if (!$this->validate($rules)) { return view('add-member', [ "validation" => $this->validator, ]); } else { $memberModel = new MemberModel(); $data = [ 'name' => $this->request->getVar("name"), 'email' => $this->request->getVar("email"), 'mobile' => $this->request->getVar("mobile"), ]; $memberModel->save($data); $session = session(); $session->setFlashdata("success", "Member berhasil di tambahkan"); return redirect()->to(base_url('list-members')); } } return view('add-member'); } } |
Membuat Model
Beralih pada model, model disini isinya sama pada artikel sebelumnya, hanya saja saya tampilkan agar kita jelas dalam belajarnya. Intinya kalian hanya perlu menambahkan artibut yang ada pada tabel kedalam model ini, kalau dalam kasus ini yaitu
name, email dan mobile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php namespace App\Models; use CodeIgniter\Model; class MemberModel extends Model { protected $DBGroup = 'default'; protected $table = 'tbl_members'; protected $primaryKey = 'id'; protected $useAutoIncrement = true; protected $insertID = 0; protected $returnType = 'array'; protected $useSoftDelete = false; protected $protectFields = true; protected $allowedFields = [ 'name', 'email', 'mobile' ]; // Dates protected $useTimestamps = false; protected $dateFormat = 'datetime'; protected $createdField = 'created_at'; protected $updatedField = 'updated_at'; protected $deletedField = 'deleted_at'; // Validation protected $validationRules = []; protected $validationMessages = []; protected $skipValidation = false; protected $cleanValidationRules = true; // Callbacks protected $allowCallbacks = true; protected $beforeInsert = []; protected $afterInsert = []; protected $beforeUpdate = []; protected $afterUpdate = []; protected $beforeFind = []; protected $afterFind = []; protected $beforeDelete = []; protected $afterDelete = []; } |
Membuat View
Belarih pada views, buat satu file baru dan simpan pada direktori app/views/add-member.php ketik kode berikut ini:
add-member.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?= $this->extend("app") ?> <?= $this->section("body") ?> <div class="container" style="margin-top:20px;"> <div class="row"> <div class="panel panel-primary"> <div class="panel-heading"> Tambah Member Baru <a href="<?= base_url('list-members') ?>" style="margin-top: -7px;" class="btn btn-success btn-sm pull-right">< Kembali</a> </div> <div class="panel-body"> <?php if (isset($validation)) : ?> <div class="col-12"> <div class="alert alert-danger" role="alert"> <?= $validation->listErrors() ?> </div> </div> <?php endif; ?> <hr> <form class="" action="<?= base_url('add-member') ?>" method="post"> <div class="form-group"> <label for="name">Nama Member</label> <input type="text" class="form-control" name="name" id="name"> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" class="form-control" name="email" id="email"> </div> <div class="form-group"> <label for="mobile">Nomer HP</label> <input type="text" class="form-control" name="mobile" id="mobile"> </div> <button type="submit" class="btn btn-success">Simpan</button> </form> </div> </div> </div> </div> <?= $this->endSection() ?> |
Perhatikan kode penting berikut ini
1 |
action="<?= base_url('add-member') ?>" |
ini adalah kode untuk mengarahkan form action pada controller member dalam method add-member, dan kalian harus benar-benar paham betul hal mendasar ini.
Routes
Untuk routes sama saja, pada artikel sebelumnya, kalian hanya perlu menambahkan ini pada routes.php yang berada pada direktori app/confic/Routes.php
1 2 3 4 5 6 |
// We get a performance increase by specifying the default // route since we don't have to scan directories. $routes->get('/', 'Home::index'); //tambahkan ini $routes->match(["get", "post"], "add-member", "Member::addMember"); |
Sekarang coba jalankan web project kamu dengan perintah
1 |
php spark serve |
maka kamu akan mendapati tampilan seperti berikut
Selesai…
Gimana.. gampang sekali bukan, Silahkan dikembangkan kembali hingga ke project yang lebih kompleks. Sekian tutorial singkat ini, semoga bermanfaat buat kalian diluaran sana yang sedang belajar codeigniter4.
Tinggalkan Balasan