Hallo teman-teman, pada tutorial sebelumnya kita sudah belajar Cara Insert Data Pada Laravel 5.3. Jika teman-teman melewatkannya dapat membacanya terlebih dulu agar tidak ketinggalan. Jika teman-teman baru mengikuti tutorial Laravel di ONPHPID Tutorial, khususnya CRUD pada Laravel 5.3, teman-teman dapat menggunakan project yang bisa di download di sini.
Pada tutorial kali ini, kita akan belajar Bagaimana Cara Update Data Pada Laravel 5.3. Karena suatu aplikasi yang berhubungan dengan data tidak lepas dari kesalahan ketika insert atau input. Bisa jadi karena salah ketik atau apapun itu. Maka aplikasi yang baik yaitu aplikasi yang dapat menangani kekeliruan dari suatu data dengan cara mengupdatenya.
Ok, kita mulai teman-teman…
Karena pada tutorial Cara menampilkan Semua Data Pada Laravel 5.3 Untuk Pemula kita sudah mebuat Controller dan edit.blade.php
, maka kita buka dulu file tersebut. Untuk Controller kita tambahkan dua buah method di bawah ini, tujuannya untuk menampilkan data dan memproses data hasil kiriman dari form.
KendaraanController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
// code lain public function show($id) { // mengambil semua users untuk di jadikan dropdwon list pemilik di form create $users = \App\User::all(); // melempar ke view di file create.blade.php yang berada di folder crud/kendaraan, sekaligus mengirim data user yang disimpan di variable $users dan data yg akan di edit yaitu $showById $showById = \App\kendaraan::find($id); return view('crud.kendaraan.edit', compact('showById', 'users')); } public function update(Request $request, $id) { // memvalidasi inputan users, form tidak boleh kosong (required) // nama_kendaraan,jenis_kendaraan,made_in,pemilik adalah name yang ada di form, contoh name="nama_kendaran" (lihat form) // \Validator adalah class yg ada pada Laravel untuk validasi // $request->all() adalah semua inputan dari form kita validasi $validate = \Validator::make($request->all(), [ 'nama_kendaraan' => 'required', 'jenis_kendaraan' => 'required', 'made_in' => 'required', 'pemilik' => 'required' ], // $after_update adalah isi session ketika form kosong dan di kembalikan lagi ke form dengan membawa session di bawah ini (lihat form bagian part alert), dengan keterangan error dan alert warna merah di ambil dari 'alert' => 'danger', dst. $after_update = [ 'alert' => 'danger', 'title' => 'Oh wait!', 'text-1' => 'Ada kesalahan', 'text-2' => 'Silakan coba lagi.' ]); // jika form kosong maka artinya fails() atau gagal di proses, maka di return redirect()->back()->with('after_update', $after_update) artinya page di kembalikan ke form dengan membawa session after_update yang sudah kita deklarasi di atas. if($validate->fails()){ return redirect()->back()->with('after_update', $after_update); } // $after_update adalah isi session ketika data berhasil disimpan dan di kembalikan lagi ke form dengan membawa session di bawah ini (lihat form bagian part alert), dengan keterangan success dan alert warna merah di ganti menjadi warna hijau di ambil dari 'alert' => 'success', dst. $after_update = [ 'alert' => 'success', 'title' => 'God Job!', 'text-1' => 'Update berhasil', 'text-2' => '.' ]; // jika form tidak kosong artinya validasi berhasil di lalui maka proses di bawah ini di jalankan, yaitu mengambil semua kiriman dari form // nama_kendaraan,jenis_kendaraan,buatan,user_id adalah nama kolom yang ada di table kendaraan // sedangkan $request->nama_kendaraan adalah isi dari kiriman form $data = [ 'nama_kendaraan' => $request->nama_kendaraan, 'jenis_kendaraan' => $request->jenis_kendaraan, 'buatan' => $request->made_in, 'user_id' => $request->pemilik ]; // di bawah ini proses update tabel kendaraan, jika kolom id sama dengan $id yang dikirim dari form $update = \App\Kendaraan::where('id', $id)->update($data); // jika berhasil kembalikan ke page data kendaraan dengan membawa session after_update success. return redirect()->to('kendaraan')->with('after_update', $after_update); } |
silakan tambahkan code di atas di bawah method store() ya teman-teman. Penjelasan ada di comment-text ya teman-teman. Setelah itu pada file edit.blade.php
masukan code di bawah ini :
edit.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
@extends('layouts.app') @section('content') <div class="panel panel-info"> <div class="panel-heading"> <center> <h1> CRUD Laravel 5.3 </h1> </center> </div> <div class="panel-body"> <a href="{{ URL('kendaraan') }}" class="btn btn-raised btn-danger pull-left">Kembali</a> {{-- part alert --}} {{-- Kita cek, jika sessionnya ada maka tampilkan alertnya, jika tidak ada maka tidak ditampilkan alertnya --}} @if (Session::has('after_update')) <div class="row"> <div class="col-md-12"> <div class="alert alert-dismissible alert-{{ Session::get('after_update.alert') }}"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ Session::get('after_update.title') }}</strong> <a href="javascript:void(0)" class="alert-link">{{ Session::get('after_update.text-1') }}</a> {{ Session::get('after_update.text-2') }} </div> </div> </div> @endif {{-- end part alert --}} <div class="row"> <div class="col-md-12"><hr> <div class="col-md-2"></div> <div class="col-md-8"> {{-- form membawa id untuk di jadikan parameter ketika update data, biasanya di buat menjadi input type="hidden" --}} <form class="form-horizontal" action="{{ URL('kendaraan/update/'. $showById->id) }}" method="POST"> {{ csrf_field() }} <fieldset> <legend>FORM UPDATE DATA KENDARAAN</legend> <div class="form-group label-floating"> <label class="control-label" for="focusedInput2">Nama Kendaraan</label> <input class="form-control" id="focusedInput2" type="text" name="nama_kendaraan" value="{{ $showById->nama_kendaraan }}"> <p class="help-block">Masukan data kendaraan dengan benar.</p> </div> <div class="form-group label-floating"> <label class="control-label" for="focusedInput2">Jenis Kendaraan</label> <input class="form-control" id="focusedInput2" type="text" name="jenis_kendaraan" value="{{ $showById->jenis_kendaraan }}"> <p class="help-block">Masukan data kendaraan dengan benar.</p> </div> <div class="form-group label-floating"> <label class="control-label" for="focusedInput2">Made In</label> <input class="form-control" id="focusedInput2" type="text" name="made_in" value="{{ $showById->buatan }}"> <p class="help-block">Masukan data kendaraan dengan benar.</p> </div> <div class="form-group label-floating"> <label class="control-label" for="select111">Nama Pemilik</label> <div class="col-md-12"> <select id="select111" class="form-control" name="pemilik"> <option value=""></option> {{-- loop all users as pemilik --}} @foreach ($users as $pemilik) {{-- cek jika user_id pd tabel kendaraan sama dengan id user pd tabel users, set menjadi selected --}} @if ($pemilik->id == $showById->user_id) <option value="{{ $pemilik->id }}" selected="selected">{{ strtoupper($pemilik->name) }}</option> @else <option value="{{ $pemilik->id }}">{{ strtoupper($pemilik->name) }}</option> @endif @endforeach {{-- end loop --}} </select> </div> </div> <div class="form-group"> <div class="col-md-12"> <button type="submit" class="btn btn-raised btn-primary pull-right">Submit</button> <button type="reset" class="btn btn-raised btn-warning pull-right">Reset</button> </div> </div> </fieldset> </form> </div> <div class="col-md-2"></div> </div> </div> </div> </div> @stop |
penjelasan dari code di atas tidak jauh berbeda dengan form insert data, perbedaannya di sini kita mengisi value=”” nya dari tabel kendaraans. Jika sudah mari kita cek untuk update data, jika gagal maka akan di kembalikan ke form dengan alert warna merah, tapi jika berhasil maka akan tampil seperti di bawah ini :
Ok, teman-teman..
kita sudah berhasil mengupdate datanya. Pada tutorial selanjutnya kita akan menghapus atau Delete Data, Untuk itu ikuti terus tutorialnya ya. Jika teman-teman ingin mendownload hasilnya di sini.
Baca Juga : Cara Insert Data Pada Laravel 5.3 Untuk Pemula
Sekian dulu tutorial Belajar laravel : Cara Update Data pada Laravel 5.3 Untuk Pemula. Jika ada hal yang kurang jelas atau ingin ditanyakan dapat melalui komentar. JANGAN LUPA like FANSPAGE ONPHPID untuk update informasi dan Subscribe Channel ONPHPID Tutorial. Selamat Belajar…