Hallo teman-teman ONPHPID, pada tutorial sebelumnya kita sudah Belajar Laravel : Cara menampilkan Semua Data Pada Laravel 5.3 Untuk Pemula. O iya, ONPHPID sarankan untuk membaca Step by step Belajar Laravel 5.3 dari awal, karena tutorial laravel ini berurutan, sehingga jangan sampai kelewatan part demi part-nya agar tidak bingung di akhir. Karena tutorial ini berurutan, maka pembahasan tentang tabel dan model tidak begitu panjang, karena semuanya sudah di bahas di tutorial di awal. Jika teman-teman sudah mengikuti dari awal, ONPHPID yakin insyallah teman-teman pasti paham. Harapannya, teman-teman dapat membuat aplikasi sederhana setelah selesai Belajar Laravel 5.3 di ONPHPID Tutorial dan dapat di kembangkan lagi menggunakan Laravel 5.4 nantinya.
Jika teman-teman baru mengikuti Tutorial di ONPHPID, teman-teman dapat menggunakan project ini. Pada tutorial sebelumnya kita sudah menampilkan semua data kendaraan ke dalam tabel, maka pada kesempatan ini kita akan menambah data kendaraannya. Apa saja yang perlu kita buat?
Pertama, kita akan membuat Form untuk mengirim datanya, kemudian kita akan menambah dua method di KendaraanController.php
yaitu untuk menampilkan form dan menerima kiriman data dari Form. Method tersebut adalah create() dan store(), dimana create untuk membuat atau menampilkan form dan store untuk menerima dan memproses data yang di kirim dari form untuk disimpan pada tabel kendaraan. Ok, langsung saja kita buka KendaraanController kemudian tambahkan dua method di bawah ini di bawah method index() yang kita buat kemarin.
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 |
// code lain public function create() { // 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 return view('crud.kendaraan.create', compact('users')); } public function store(Request $request) { // 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_save 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_save = [ '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_save', $after_save) artinya page di kembalikan ke form dengan membawa session after_save yang sudah kita deklarasi di atas. if($validate->fails()){ return redirect()->back()->with('after_save', $after_save); } // $after_save 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_save = [ 'alert' => 'success', 'title' => 'God Job!', 'text-1' => 'Tambah lagi', 'text-2' => 'Atau kembali.' ]; // 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 insert ke tabel kendaraan $store = \App\Kendaraan::insert($data); // jika berhasil kembalikan ke page form dengan membawa session after_save success. return redirect()->back()->with('after_save', $after_save); } |
Kita sudah membuat dua buah method di Controller, penjelasannya ada pada coment text ya teman-teman. Setelah itu mari kita buat form yang akan kita jadikan untuk menambah data kendaraan. Silakan buka file create.blade.php
yang berada di folder resources/crud/kendaraan yang sudah kita buat pada tutorial sebelumnya, dan masukan code di bawah ini :
create.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 |
@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 --}} @if (Session::has('after_save')) <div class="row"> <div class="col-md-12"> <div class="alert alert-dismissible alert-{{ Session::get('after_save.alert') }}"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ Session::get('after_save.title') }}</strong> <a href="javascript:void(0)" class="alert-link">{{ Session::get('after_save.text-1') }}</a> {{ Session::get('after_save.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 class="form-horizontal" action="{{ URL('kendaraan/store') }}" method="POST"> {{ csrf_field() }} <fieldset> <legend>FORM TAMBAH 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"> <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"> <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"> <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) <option value="{{ $pemilik->id }}">{{ strtoupper($pemilik->name) }}</option> @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 script atau code di atas adalah @extends(‘layouts.app’) dapat di artikan kita mengambil layout template yang ada di folder layouts dengan nama app.blade.php tanpa extensinya.
NOTE :
- Jika teman-teman pernah menggunakan Codeigniter, @extends identik dengan $this->loadView(‘nama_file_nya’).
- Jika di native atau PHP tanpa Framework maka identik dengan require, include, require_once, include_once
Bagaimana? paham kan teman-teman…
Pada bagian @section(‘content’) untuk menginisialisasi bahwa bagian ini yang kita masukan sebagai content yang kemarin kita deklarasi di app.blade.php
dengan @yield(‘content’). Perlu di ingat bagian ‘content’ harus sama antara yang di @yield() dan di @section().
Lihat bagian part-alert, Kita cek, jika sessionnya ada maka tampilkan alertnya, jika tidak ada maka tidak ditampilkan alertnya. Pada bagian @foreach hingga @endforeach kita looping semua users sebagai pemilik kendaraan nantinya. strtoupper() untuk mengubah string menjadi huruf KAPITAL semua.
Lalu akhir dari @section(‘content’) adalan @stop teman-teman dapat menggunakan @endsection atau @stop, karena perbedaannya tidak terlalu signifikan.
Jika sudah mari kita coba menambah data, jika datanya kosong maka akan tampil seperti di bawah ini :
dan jika sukses proses tambah datanya maka akan tampil seperti gambar di bawah ini:
Nah, akhirnya kita berhasil menambah data sekaligus memvalidasi bahwa inputan tidak boleh kosong. Teman-teman dapat mengeksplore lagi Bagaimana cara insert data pada Laravel 5.3 dan Validasi inputannya dengan membaca dokumentasi laravel pada bagian validation disini. Pada tutorial selanjutnya kita akan mengubah data yang sudah kita tambahkan pada tutorial ini. Update source code di ada di sini, Semoga bermanfaat.
Baca Juga : Cara menampilkan Semua Data Pada Laravel 5.3 Untuk Pemula
Sekian dulu tutorial Belajar laravel : Cara Insert 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…