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.
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)
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
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 :
kelas.blade.php
web.php
Buat file views/kelas/add.blade.php
Hasilnya:
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
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
Posting Komentar