Untuk melakukan edit dan update data ke database dengan Laravel maka kita perlu sebuah form data yang berguna untuk menampilkan data record yang kita panggil dari database. Sehingga kita perlu menambahkan satu file view “edit.blade.php” pada folder “resources/views/kontak/edit.blade.php”.
Buka jendela Terminal/ Command Prompt, masih aktif pada project Laravel ketikkan perintah berikut:
cd resources/views/kontak
touch edit.blade.php
Seperti tampak pada gambar berikut:
Selanjutnya kita buka file view “edit.blade.php” yang telah kita buat, dan ketikkan kode berikut lalu simpan.
@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
Selanjutnya buka file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, kemudian ketikkan kode berikut pada method edit():
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'));
}
Dan ketikkan kode berikut pada method update():
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');
}
Oke, sampai disini proses membuat edit dan update data ke database dengan Laravel selesai, selanjutnya kita coba edit salah satu data, jika berjalan dengan baik maka akan tampak seperti berikut.
Membuat Proses Hapus Data di Laravel (Delete)