
Diartikel ini kita akan melanjutkan Artikel CRUD pada Laravel, setelah di artikel sebelumnya kita selesai setting sampai Fitur Read, diartikel ini kita akan menyelesaikan Fitur lainnya.
Nah Fitur yang akan kita selesaikan adalah Fitur Create
, Update
, dan Delete
. Fitur ini mengharuskan kita untuk menambah syntax di Controller
dan juga membuat beberapa tampilan.
Penjelasan CRUD pada Laravel Part 2
Seperti yang aku jelaskan sebelumnya, disini kita akan terfokus di file Controller
dan juga view
kita. Jadi kalau kalian lihat di Controller ada beberapa fungsi yang sudah dibuatkan, nah Fungsi ini memiliki beberapa tujuan tertentu. Penjelasannya ada dibawah ini
- index() = Menampilkan tampilan Utama
- create() = Menampilkan tampilan untuk input Data
- store() = Input data yang di input ke Database
- show() = Menampilkan data satu-persatu
- edit() = Menampilkan tampilan untuk Edit / Update
- update() = Menginput data yang ktia Edit
- destroy() = Menghapus Data
Nah, disini kita akan Fokus ke beberapa Fungsi diatas untuk menyelesaikan Fitur CRUD pada Laravel.
Mulai Ngoding
Disini kita akan Ngoding dari Fitur Create
terlebih dahulu, setelah itu Delete
dan terakhir Update
.
Menambah Tombol untuk Input Data
Nah, sebelum kita bicara tentang Controller
, pertama kita harus buat Tombol untuk mengarah ke Link /create
, nah ini digunakan untuk mengarah ke tampilan atau fungsi create()
. Di index.blade.php
kita tambahkan Tombol Create
dengan arah ke /create
. Tambahkan syntax ini dibawah tabel
<a href="/create" class="btn btn-primary mt-2">Create Employee</a>
Nanti akan mendapatkan tampilan seperti dibawah ini

Fitur Create
Fitur Create ini mengharuskan kita terfokus ke 2 Fungsi, yaitu create()
dan store()
. Fungsi create()
akan menampilkan tampilan kita, fungsi store()
akan menginput data kita ke Database. Pertama, kita ganti dulu syntax di Controller kita, kita harus mengarahkan Fungsi create()
ke view
Input kita.
Tambahkan syntax dibawah ini
return view('create');
Setelah itu, kita tinggal membuat tampilan dari create() kita. Caranya kita tinggal buat file dengan nama sesuai yaitu create.blade.php
File create.blade.php
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>CRUD Karyawan</title>
</head>
<body>
<div class="container mt-5">
<h1 class="display-4">Data Karyawan</h1>
<form action="/employee" method="POST">
@csrf
<div class="mb-3">
<label for="name" class="form-label">Name</label>
<input type="name" name="name" class="form-control" id="name">
</div>
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<div class="mb-3">
<label for="phone_number" class="form-label">Phone Number</label>
<input type="phone_number" name="phone_number" class="form-control" id="phone_number">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
</script>
</body>
</html>
Kalau kalian perhatikan, disana kita ada syntax @csrf, Teman-teman bisa lihat detailnya di Dokumentasi Laravel CSRF Protection, syntax ini merupakan syntax keamanan Laravel utnuk Form nih temen-temen. jadi harus selalu ada ya. Nah nanti akan tampil seperti ini

Setelah selesai dengan tampilan, kita tinggal fokus ke fungsi store().
Fungsi ini akan mengirimkan Data kita ke Database
. Fungsi store()
ini bisa kita isi dengan validasi Data kita dan juga syntax untuk input Data ke Database
.
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|unique:employees|email:dns',
'phone_number' => 'max:255'
]);
Employee::create($validatedData);
return redirect('/employee')->with('success', 'New Employee Has ben added!');
}
Fitur Delete
Nah untuk Fitur Delete beserta Update nanti, kita perlu menambahkan Dua tombol didalam Tabel kita. Tombol Pertama ini berguna untuk Update, Tombol Kedua untuk Deletenya, ada sedikit perbedaan diantara 2 Tombol ini, tombol Edit dibuat dengan <a href>
, sementara tombol Delete
dibuat dengan form.
Tambahkan syntax ini didalam dibawah syntax Phone Number
<th scope="col">Action</th>
Lalu syntax ini dibawah syntax {{ $item->phone_number }}
<td>
<a href="/employee/{{ $item->id }}/edit" class="btn btn-warning">Edit</a>
<form action="/employee/{{ $item->id }}" method="POST" class="d-inline">
@method('delete')
@csrf
<button class="btn bg-danger text-light"
onclick="return confirm('are you sure?')">Delete</button>
</form>
</td>
Nanti akan tampil Seperti ini

Nah, setelah Tombol Delete terlihat, kita bisa fokus ke fungsi destroy() yang ada di Controller. Cukup tambahkan syntax seperti ini.
Employee::destroy($employee->id);
return redirect('/employee')->with('success', 'Employee Has ben deleted!');
Fitur Update
Fitur terakhir yang akan kita bahas adalah Fitur Update
. Fitur ini memiliki beberapa kemiripan dengan Fitur Create
. Fungsi Update ini sama sama menggunakan 2 Fungsi di Controller yaitu edit()
dan update()
. Nah sekarang kita Fokus ke Fungsi edit()
terlebih dahulu.
Fungsi ini sama dengan fungsi create()
, yaitu menampilkan tampilan untuk Input Data, tapi bedanya fungsi edit()
ini menyertakan Data yang akan kita Edit. Jadi nanti saat kita menjalankan Fungsi ini, di Tampilan kita sudah terlihat Data yang akan kita Edit. Tulis syntax ini didalam fungsi edit()
return view('edit', [
'employee' => $employee,
]);
Nah, setelah itu kita tinggal buat Tampilan untuk Edit ini. kita namai edit.blade.php
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>CRUD Karyawan</title>
</head>
<body>
<div class="container mt-5">
<h1 class="display-4">Edit Data Karyawan</h1>
<form method="POST" action="/employee/{{ $employee->id }}">
@method('put')
@csrf
<div class="mb-3">
<label for="name" class="form-label">Name</label>
<input type="name" name="name" class="form-control" id="name" value="{{ $employee->name }}">
</div>
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" name="email" class="form-control" id="email" value="{{ $employee->email }}">
</div>
<div class=" mb-3">
<label for="phone_number" class="form-label">Phone Number</label>
<input type="phone_number" name="phone_number" class="form-control" id="phone_number"
value="{{ $employee->phone_number }}">
</div>
<button type=" submit" class="btn btn-primary">Submit</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
</script>
</body>
</html>
Kalau dilihat disetiap Form nya pasti ada tulisan value=""
, nah inilah yang membuat kita bisa menampilkan data yang ingin kita Edit. Kurang lebih seperti ini tampilannya

Setelah itu kita tinggal Fokus ke fungsi update()
saja. Fungsi ini sama seperti fungsi store()
, yaitu untuk mengirimkan Data kita ke Database
. Tulis syntax dibawah ini didalam fungsi update()
.
$rules = [
'name' => 'required|max:255',
'phone_number' => 'required',
];
if ($request->email != $employee->email) {
$rules['email'] = 'required|unique:employees|email:dns';
}
$validatedData = $request->validate($rules);
Employee::where('id', $employee->id)->update($validatedData);
return redirect('/employee')->with('success', 'Employee Has ben Updated!');
Dan selesailah semua Fungsi dari CRUD pada Laravel kita.
Kesimpulan
Diartikel ini kita sudah menyelesaikan Metode CRUD pada Laravel kita. CRUD pada Laravel kita lengkapi disini dengan Fitur Create, Update, dan Delete. Secara Garis besar, Laravel memang memudahkan kita dalam mengerjakan CRUD pada Laravel ini, banyak Fungsi-fungsi yang sudah dibuatkan dan dituliskan, sehingga kita tinggal melengkapi sesuai kebutuhan kita.
Mungkin cukup sekian Artikel CRUD pada Laravel yang kita buat dalam 2 Part ini. Kalau mau lihat Part 1 ada disini ya