Rumahweb Journal
banner - belajar laravel bagian 17

Belajar Laravel Bagian 17 – Membuat CRUD Edit Data Eloquent

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.

OperasiQuery BuilderEloquent ORM
UpdateDB::table(‘users’)->where()->update([…])$user->update([…])
Contohuse 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.

Pindah Hosting ke Rumahweb Gratis

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. 

edit data karyawan menggunakan eloquent - belajar laravel
proses edit data karyawan menggunakan eloquent
berhasil edit data karyawan menggunakan eloquent

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.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Cloud Hosting Terbaik Rumahweb

Anggit TS

I'm a Technical Support Specialist at Rumahweb Indonesia with a strong passion for front-end development. Skilled in website creation and experienced in content writing. I blend technical expertise with creativity to craft engaging and functional web experiences!

banner pop up - Pindah Hosting ke Rumahweb