Tutorial Laravel 6x kali ini masih merupakan rangkaian dari tutorial laravel sebelumnya. Kali ini kita akan membahas CRUD di laravel bagaimana membuat fungsi edit dan update data di Laravel.

Seperti kita ketahui bahwa CRUD secara lengkap merupakan singkatan dari Create Read Update dan Delete, akan tetapi pada tutorial yang saya suguhkan disini dibahas satu persatu.

Setelah sebelumnya kita berhasil menyelesaikan tutorial membuat CRUD menampilkan data dari database dengan Laravel, kemudian kita juga telah menyelesaikan tutorial membuat CRUD input data dengan Laravel, maka tutorial kali melanjutkan dari tutorial sebelumnya yaitu bagiamana membuat CRUD edit dan update data di Laravel.

Oke langsung saja kita bahas step stepnya seperti berikut.

CRUD Edit dan Update Data Dengan Laravel
Pertama yang perlu kita lakukan adalah membuat file view edit.blade.php kemudian kita simpan pada folder “resources/views/kontak/edit.blade.php”.

Oke teman-teman buka jendela Terminal/Command Prompt, kemudian gunakan perintah change directory (cd), dan langsung saja arahkan ke project kerja ke floder “resources/views/kontak”, masih menggunakan terminal dan ketikkan perintah berikut:

touch edit.blade.php

Nah maksud dari perintah diatas adalah menciptakan file “edit.blade.php”.

Lanjut, oke teman-teman mari kita buka file view “edit.blade.php” yang telah kita buat, dan ketikkan kode berikut:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Edit Data</div>

                <div class="card-body">
                    <form method="POST" action="{{route('kontak.update',$kontak->id)}}">
                        @csrf
                        @method('PUT')
                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Nama Lengkap</label>

                            <div class="col-md-6">
                                <input id="nama_lengkap" type="text" class="form-control @error('nama_lengkap') is-invalid @enderror" name="nama_lengkap" value="{{ $kontak->nama_lengkap }}" required autocomplete="nama_lengkap" autofocus>

                                @error('nama_lengkap')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">E-Mail</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $kontak->email }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Pekerjaan</label>

                            <div class="col-md-6">
                                <input id="pekerjaan" type="text" class="form-control @error('pekerjaan') is-invalid @enderror" name="pekerjaan" value="{{ $kontak->pekerjaan }}" required autocomplete="pekerjaan" autofocus>

                                @error('pekerjaan')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Alamat</label>

                            <div class="col-md-6">
                                <textarea id="alamat" class="form-control @error('alamat') is-invalid @enderror" name="alamat" value="{{ old('alamat') }}" required autocomplete="alamat" autofocus>{{$kontak->alamat}}</textarea>

                                @error('alamat')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>                

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Simpan') }}
                                </button>

                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Nah sampai disini kita telah berhasil membuat file view edit, dimana file tersebut kita isi denga tag html berupa tag pembentuk form. Dan nilai form value nya kita isi record data yang kita panggil dari method edit(), sehingga tahap selanjutnya adalah kita buatkan method edit() nya pada file controller pada folder “app/Http/Controllers/KontakController.php”.

Lanjut, mari kita buka file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, dan ketikkan kode berikut.

public function edit($id)
    {
        //mengambil data dari database
        $kontak = DB::table('kontaks')->where('id',$id)->first();
        
        //passing data ke view edit.blade.php
        return view('kontak.edit',compact('kontak'));
    }

Pada kode tersebut record data kontak berdasarkan id nya yang kita panggil dari database kita simpan pada variabel $kontak pada kode berikut:

//mengambil data dari database
$kontak = DB::table('kontaks')->where('id',$id)->first();

Kemudian kita passing ke view pada kode berikut:

//passing data ke view edit.blade.php
return view('kontak.edit',compact('kontak'));

Oke teman-teman, perlu diperhatikan, sebelum melanjutkan mari kita simak kembali file view “edit.blade.php” pada folder “resources/views/kontak/edit.blade.php”, nah disana kita dapati action form nya mengarah ke route(‘kontak.update’,$kontak->id) dengan membawa data kunci id.

Nah teman-teman itu artinya kita perlu menambahkan satu method update() pada file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, dimana method ini nantinya berfungsi untuk menangkap data update yang dikirmkan form “edit.blade.php” dan menyimpannya ke dalam database sebagai data perubahan.

Oke kita buka kembali file controllernya dan pada method update() kita tambahkan beberapa kode berikut:

    public function update(Request $request, $id)
    {
        //mengupdate data
        
        DB::table('kontaks')->where('id',$id)->update([
            'nama_lengkap'  => $request->nama_lengkap,
            'email'         => $request->email,
            'pekerjaan'     => $request->pekerjaan,
            'alamat'        => $request->alamat
        ]);
                
        //redirect setelah berhasil menjalankan update
        return redirect('/kontak')->with('status','Data Berhasil Diupdate');
    }

Kemudian, teman-teman mari kita coba hasilnya, disini saya akan mencoba mengedit record data nomor 1 seperti berikut:

Tombol edit data Laravel
Tombol edit data Laravel

Oke teman-teman mari kita jalankan project Laravel kita dengan menjalankan perintah berikut pada Terminal/Command Prompt:

php artisan serve

Kemudian buka web browser dan jalankan url berikut:

localhost:8000/kontak

Kemudian klik tombol “Edit” pada kolom aksi, jika berjalan dengan baik maka akan tampil halaman seperti berikut:

Form edit dta dengan Laravel
Form edit data Laravel

Lakukan beberapa perubahan data kemudian tekan tombol “Simpan”. Jika berjalan dengan baik maka akan tampak seperti berikut:

Data berhasil diupdate

Oke teman-teman sampai disini tutorial membuat CRUD Edit dan Update Data Di Laravel akhirnya berhasil kita selesaikan. Semoga tutorial kali ini dapat membantu dan memberi manfaat. Terimakasih…

Selesai.