Pada sesi belajar Laravel bagian 16, kita telah belajar cara membuat CRUD tambah data menggunakan Eloquent. Dalam lanjutan belajar laravel bagian ini, kita akan belajar tentang bagaimana membuat CRUD edit data menggunakan Eloquent secara cepat dan mudah.
Perbedaan Query Builder dan Eloquent
Seperti yang kita ketahui, terdapat dua metode utama untuk melakukan proses CRUD di Laravel, yaitu Query Builder dan Eloquent ORM. Berikut ini adalah contoh perintah dasar untuk melakukan operasi update menggunakan masing-masing metode.
Operasi | Query Builder | Eloquent ORM |
Update | DB::table(‘users’)->where()->update([…]) | $user->update([…]) |
Contoh | use Illuminate\Support\Facades\DB; DB::table(‘users’) ->where(’email’, ‘[email protected]’) – >update([‘name’ => ‘John Smith’, ‘password’ => bcrypt(‘newpassword123’) ]); | use App\Models\User; $user = User::where(’email’, ‘[email protected]’)->first();if ($user) { $user->name = ‘John Smith’; $user->password = bcrypt(‘newpassword123’); $user->save();} atau bisa juga yang lebih ringkas. User::where(’email’, ‘[email protected]’) – >update([‘name’ => ‘John Smith’, ‘password’ => bcrypt(‘newpassword123’) ]); |
Membuat CRUD Edit Data Eloquent
Dalam artikel ini, kami akan membahas secara mendalam tentang cara membuat CRUD Laravel untuk edit data menggunakan metode Eloquent.
Langkah 1. Membuat route edit data Karyawan
Langkah pertama, mari membuat route edit data karyawan di file routes/web.php. Pada baris terakhirnya, silakan Anda tambahkan script berikut.
Route::get('/karyawan/edit/{id}', [KaryawanController::class, 'edit']);
Keterangan:
{id} pada Route diatas digunakan sebagai identitas/ nomor mana yang ingin dilakukan edit. Setelah mendapatkan id data yang akan di edit, maka informasi id tersebut akan diteruskan ke KaryawanController method edit.
Langkah 2: Membuat method edit di KaryawanController
Berikutnya, membuat method edit di KaryawanController. Id yang dikirimkan oleh route sebelumnya, ditindaklanjuti oleh controller untuk memanggil detail data sesuai dengan id yang diminta.
Silakan edit file app/Http/Controllers/KaryawanController.php, tambahkan kode berikut.
// method untuk edit data database ke table karyawan
public function edit($id)
{
// Ambil data karyawan berdasarkan id menggunakan Eloquent $karyawan = Karyawan::find($id);
// Tampilkan view edit dan kirim data karyawan return view('karyawan.edit', ['karyawan' => $karyawan]);
}
Keterangan:
Perintah tersebut digunakan untuk memanggil data karyawan dengan id yang dipilih. Selanjutnya, data tersebut ditampilkan ke form edit karyawan.
Langkah 3: Membuat View untuk Form Edit
Selanjutnya, buat form edit karyawan. Silakan membuat file untuk form edit di resources/views/karyawan/edit.blade.php. Silakan tuliskan kode berikut.
<!DOCTYPE html>
<html>
<head>
<title>Edit Data Karyawan</title>
</head>
<body>
<h2>Form Edit Data Karyawan</h2>
<!-- Ini adalah Tombol kembali ke halaman utama karyawan -->
<p>
<a href="/karyawan">Kembali</a>
</p>
<!-- Contoh Form Edit Data Karyawan Sederhana -->
<form action="/karyawan/update/{{ $karyawan->karyawan_id }}" method="post">
{{ csrf_field() }}
<table>
<tr>
<td><label for="nama">Nama</label></td>
<td><input type="text" id="nama" name="nama" value="{{ $karyawan->karyawan_nama }}" required></td>
</tr>
<tr>
<td><label for="jabatan">Jabatan</label></td>
<td><input type="text" id="jabatan" name="jabatan" value="{{ $karyawan->karyawan_jabatan }}" required></td>
</tr>
<tr>
<td><label for="umur">Umur</label></td>
<td><input type="number" id="umur" name="umur" value="{{ $karyawan->karyawan_umur }}" required></td>
</tr>
<tr>
<td><label for="alamat">Alamat</label></td>
<td><textarea id="alamat" name="alamat" required>{{ $karyawan->karyawan_alamat }}</textarea></td>
</tr>
<tr>
<td colspan="2" style="text-align: right;">
<input type="submit" value="Simpan Data">
</td>
</tr>
</table>
</form>
</body>
</html>
Keterangan:
Saat tombol submit di klik, data yang telah diisi di form edit kemudian dikirimkan ke method karyawan update. Tak lupa, buat route updatenya terlebih dahulu.
Langkah 4: Membuat Route untuk Update Data
Langkah keempat, membuat route untuk melakukan proses update data. Silakan tambahkan script berikut di file routes/web.php. Tambahkan kode berikut.
Route::post('/karyawan/update/{id}', [KaryawanController::class, 'update']);
Keterangan:
Dari route tersebut, datanya akan dikirim ke KaryawanController dengan method update.
Langkah 5: Membuat Method update di Controller
Langkah ke lima, buat method update di KaryawanController untuk memproses perubahan data. Silakan edit file app/Http/Controllers/KaryawanController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Models\Karyawan; // Tambahkan ini
class KaryawanController extends Controller
{
public function index()
{
// Mengambil semua data karyawan
$karyawan = Karyawan::all();
// Mengirim data ke view
return view('karyawan.index', ['karyawan' => $karyawan]);
}
public function tambah()
{
// memanggil view tambah
return view('karyawan.tambah');
}
// method untuk insert data ke table karyawan
public function store(Request $request)
{
// insert data ke table karyawan
Karyawan::create(['karyawan_nama'=> $request->nama,
'karyawan_jabatan' => $request->jabatan,
'karyawan_umur' => $request->umur,
'karyawan_alamat' => $request->alamat
]);
// alihkan halaman ke halaman karyawan
return redirect('/karyawan');
}
// method untuk edit data database ke table karyawan
public function edit($id)
{
// Ambil data karyawan berdasarkan id menggunakan Eloquent
$karyawan = Karyawan::find($id);
// Tampilkan view edit dan kirim data karyawan
$karyawan = Karyawan::findOrFail($id);
return view('karyawan.edit', ['karyawan' => $karyawan]);
}
// Membuat method proses edit data
public function update(Request $request, $id)
{
// Validasi data
$request->validate([
'nama' => 'required|string|max:255',
'jabatan' => 'required|string|max:255',
'umur' => 'required|integer|min:18',
'alamat' => 'required|string',
]);
// Update data karyawan di database
DB::table('karyawan')->where('karyawan_id', $id)->update([
'karyawan_nama' => $request->nama,
'karyawan_jabatan' => $request->jabatan,
'karyawan_umur' => $request->umur,
'karyawan_alamat' => $request->alamat,
]);
//Setelah itu redirect kembali ke halaman utama data karyawan
return redirect('/karyawan')->with('success', 'Selamat Data karyawan Anda berhasil diupdate');
}
// method untuk menghapus data ke table karyawan
public function hapus($id)
{
$karyawan = Karyawan::find($id);
// alihkan halaman ke halaman karyawan
$karyawan->delete();
return redirect('/karyawan');
}
}
Keterangan:
- findOrFail($id): Digunakan untuk memastikan bahwa jika data tidak ditemukan, Laravel akan otomatis menampilkan error 404.
- $karyawan->update([…]): Ini adalah cara lebih elegan dan sesuai dengan prinsip Eloquent dibandingkan DB::table()->update()
Setelah data karyawan berhasil di edit, selanjutnya halaman website akan dialihkan ke tampilan utama Data karyawan dengan menampilkan pesan sukses ‘Selamat Data karyawan Anda berhasil diupdate’.
Sampai disini, langkah pembuatan fitur edit telah selesai dilakukan. Terakhir adalah tahap testing untuk memastikan program yang dibuat sesuai dengan rencana.
Langkah 6: Melakukan testing edit data karyawan
Langkah terakhir melakukan testing pada menu edit yang baru saja dibuat. Silakan jalankan terlabih dahulu service Laravelnya dengan perintah artisan berikut.
php artisan serve
Selanjutnya, akses url http://127.0.0.1:8000/karyawan dari browser favorit Anda, lalu lakukan testing edit data karyawan.


Selamat, sampai disini data Anda sudah bisa diedit dengan baik. Untuk panduan CRUD lainnya menggunakan Eloquent akan kami tulis di edisi artikel selanjutnya.
Demikian tutorial belajar Laravel bagian ke 17 tentang CRUD edit data dari database menggunakan Eloquent. Simak terus belajar laravel di Rumahweb Indonesia, semoga bermanfaat.