Create Data with DB Facade

PRAKTIKUM 12
Create Data With DB Facade


Assalamualaikum wr.wb
Balik lagi di blog TutorGesit nihh hhe apakabar kalian semua? ga kerasa yaa udah berapa kali kalian ngikutin postingan TutorGesit? semoga TutorGesit dapat selalu memberikan informasi materi pemrograman yang berguna bagi kalian semua. Pada postingan kaliini kita akan membuat system create data dengan db facade, eitss jangan lupa projek sebelumnya yaa karena kita akan lanjutkan dari  projek di postingan sebelumnya, yukk kita simak...

CREATE DATA
Edit resources/views/belajar.blade.php
tambahkan link menuju form add seperti dibawah ini


Buka routes web.php


Perintah pada baris 19 akan mengarahkan route /siswa/create ke function create pada controller SiswaController 

Buat function create pada SiswaController



Buat file resources/views/siswa/from.blade.php

@csrf
Setiap request yang memiliki method selain GET (POST, PUT, PATCH, DELETE), syntax diatas wajib digunakan didalam form sebagai fungsi keamanan dari serangan CSRF.


CSRF (Cross-Site Request Forgery) merupakan bentuk eksploitasi website yang dieksekusi atas wewenang korban, tanpa dikehendakinya. CSRF menipu web site melalui request dari user yang dipercaya. Serangan bekerja melalui link atau script pada halaman site yang diakses user.


Buat function Store
Buat route baru seperti dibawah ini untuk menambahkan fungsi store yang kita buat pula fungsinya dalam SiswaController.

$input = $request->all();
Baris diatas digunakan untuk menangkap seluruh request yang dikirim dari view form

unset($input['_token']);
Baris diatas digunakan untuk menghapus data dengan key _token pada array asosiatif $input karena data tersebut tidak ada didalam tabel (tidak akan di-insert)

$status = DB::table('t_siswa')->insert($input);

Melakukan insert data ke tabel t_siswa dimana datanya berasal dari array $input

Kondisi IF
Baris dalam if condition berfungsi untuk memeriksa apakah input data berhasil atau tidak.
Jika berhasil maka arahkan tampilan kembali ke alamat /siswa (Menampilkan Tabel Data Siswa) dengan membawa session success dengan pesan ‘Data berhasil ditambahkan’

Jika gagal maka arahkan tampilan kembali ke alamat /siswa/create (Menampilkan kembali form input data siswa) dengan membawa session error dengan pesan ‘Data gagal ditambahkan’


Coba dalam Browser
Before
Input

 After + bootstrap




MESSAGE FEEDBACK

Buka file resources/views/belajar.blade.php
Tambahkan kodingan dibawah ini


@if
Digunakan untuk menampilkan suatu bagian pada HTML ketika kondisi pada PHP terpenuhi

@if(session(‘success’))

Pada contoh diatas, tampilkan div dengan class success jika session(‘success’) tidak kosong. Div tersebut berisikan data/pesan yang ada pada session(‘success’) tersebut

Hasilnya akan muncul alert seperti ini :



INPUT VALIDATION

Untuk melakukan validasi input agar sesuai dengan yang diharapkan, Laravel sudah menyediakan fiturnya yaitu dengan menggunakan Facades Validator atau function validate. Langsung saja kita coba

Edit file SiswaController.php
Tambahkan pada function store



Edit file form.blade.php


Hasilnya:
Catatan:

Cara menulis rule adalah dengan membuat array asosiatif yang didalamnya berisi key yang berupa nama field yang ada pada form dan value yang berisi string valiadasinya. Jika terdapat lebih dari 2 validasi, gunakan simbol | Jika string validasi memerlukan parameter, gunakan simbol titik dua :
Contoh Array Asosiatif untuk Validasi NIS:

‘nis’ => ‘max:10’

Artinya: Validasi NIS hanya boleh memiliki panjang maksimal 10 karakter
Lalu pada @if masih sama dengan if pada percobaan sebelumnya, if disini artinya menampilkan error dari validasi jika variabel $errors lebih dari 1Variabel $errors berasal dari hasil validasi pada sintaks di Controller => $this->validate()


DISPLAYING USER'S OLD VALUE

Maksud pada judul materi ini adalah pada saat from tambah data tidak sesuai dengan rules (INPUT VALIDATION) data yang sudah diinput oleh user sebelumnya harus tetap muncul. hmm supaya jelas langsung coba aja deh

Edit from.blade.php
Tambahkan value="{{ old('nama_field') }}" pada tag input, maka inilah hasilnya :




STUDIKASUS 1

1. Lakukan hal yang sama seperti yang sudah dijelaskan pada slide sebelumnya untuk tabel t_kelas. Buatlah tampilan form untuk menambahkan data kelas.

Ayo Kita Kerjakan!....

kelas.blade.php



web.php

KelasController.php



Buat file views/kelas/add.blade.php



Hasilnya:



2. Implementasikan validasi untuk tabel t_kelas, cobalah beberapa validasi yang berbeda selain yang sudah dijelaskan (tidak boleh validasi numeric, string dan max)

Tambahkan kodingan berikut sebagai alert saat ada kekeliruan ketika mengisi data, posisinya dapat disesuaikan


Edit Function store pada KelasController.php


Alpha : inputan harus berupa huruf tidak boleh angka
Alpha_num : inputan harus berupa huruf dan angka tidak boleh yang lain



STUDIKASUS 2

Di tutorial ini terdapat BUG, temukan BUG nya dan pecahkan solusi dari BUG tersebut!

Jadi bug nya adalah pada table t_siswa dimana nis bukan termasuk foreign key dan apabila kita mengitputkan nis yang sama data akan dihimpun dan menjadi duplicate entry. solusinya adalah dengan memberikan validasi unique:t_siswa


Ini hasilnya saat kita mengitput nis yang sama setelah ada validasi



STUDIKASUS 3

Sudah menangkap maksud dari fungsi old? Implementasikan fungsi tersebut untuk field berjenis radio button dan field berjenis select option pada form siswa (Field jenkel dan goldar)

Pada Radio Button

Pada Select Option



Hasilnya :


Nahhh sudah beres dehhh gimana nihh masih pada bingung gak? semoga bermanfaat.....


Komentar

Postingan Populer