Laravel Controller With Case Studies.
Laravel Controller With Case Studies.
1. Tujuan
a. Peserta didik dapat mengetahui apa itu Controller.
b. Peserta didik dapat membuat controller sederhana.
c. Peserta didik dapat membuat grouping berdasarkan controller didalam route.
d. Peserta didik dapat mengetahui penggunaan form pada Laravel.
e. Peserta didik dapat membuat form sederhana di dalam Laravel.
f. Peserta didik dapat membuat validasi pada form yang telah dibuat.
g. Peserta didik dapat melakukan upload file pada form yang sudah dibuat.
2. Perlengkapan
a. Modul IV. Laravel Controller With Case Studies.
b. IDE atau Teks Editor (Visual Studio Code, Notepad++, Sublime).
3. Materi.
Dalam pengembangan aplikasi web menggunakan framework Laravel, controller
sangatlah penting dalam mengelola logika bisnis dan mengatur interaksi antara
model (data) dan tampilan (view). Dengan mengatur berbagai permintaan HTTP
yang diterima dari pengguna, controller memandu aplikasi untuk memberikan
respons yang sesuai, memastikan pengalaman pengguna yang interaktif dan
responsif. Controller dalam Laravel memungkinkan kita untuk membuat aplikasi
web yang efisien, terstruktur, dan mudah dikelola, mempercepat proses
pengembangan serta meningkatkan fleksibilitas dan skalabilitasnya.
Lalu kita bisa kelompokkan semua logic yang ada di dalam route kedalam controller,
Untuk membuat sebuah controller kita dapat menggunakan perintah artisan, Semua
controller yang kita buat ada didalam folder App/Http/Controllers. Perintah
artisan untuk membuat controller seperti ini.
Contohnya kita akan buat controller untuk user, perintah seperti ini.
Lalu semua logic yang ada di dalam route kita pindahkan ke dalam controller yang
sudah kita buat. Didalam controller kita tambahkan function index untuk code dari
route users, dan show untuk code dari route users.detail. Seperti ini.
Code Didalam Route Dipindahkan Kedalam Controller.
Didalam return kita panggil view agar view yang ditampilkan sesuai dengan alamat
route yang diakses. Kita siapkan view yang akan kita tampilkan di browser. Pertama
tama kita buat layout agar kita dapat menggunakan template HTML secara berulang
kali, untuk membuat layout kita buat folder layout di dalam view lalu di dalamnya
beri view nama app.blade.php, untuk melakukan itu kita bisa menggunakan perintah
artisan di terminal kita seperti ini.
Jika sudah dijalankan kita dapat melihat view yang sudah kita buat di dalam folder
resources/views/layouts. Lalu didalam view app kita buat template HTML
yang akan kita gunakan di berbagai view, seperti ini.
Lalu kita buat view untuk menampilkan data yang akan ditampilkan di dalam view
ketika route dijalankan. untuk view index kita tampilkan semua user di dalam tabel,
lalu kita buat nama user ketika di klik akan mengarah ke halaman detail dari user
yang diklik. Untuk membuat view kita bisa menggunakan perintah artisan seperti ini.
Lalu disetiap view kita tambahkan extends dan panggil view yang ada di dalam
layouts, lalu kita tambahkan dua section di dalamnya untuk memberikan title dan
content di dalamnya.
Isi Code Di Dalam View Users.
Kita sudah membuat view dan controller agar logic ketika kita buat route bisa kita
pisahkan, sehingga di dalam file routes/web.php akan difokuskan untuk
mendefinisikan route yang ada didalam aplikasi kita. untuk memanggil class
UserController yang sudah kita buat kedalam route yaitu dengan memberikan array
setelah url, lalu didalam array kita beri class controllernya lalu setelahnya beri nama
method yang akan digunakan saat kita akses route tersebut. Contohnya seperti ini.
Contoh Penggunaan Controller Dan Method Di Dalamnya.
B. Grouping By Controller.
Kita dapat melakukan pengelompokkan berdasarkan controller pada saat kita
membuat route. Untuk mengelompokkan controller didalam route yaitu kita dapat
menggunakan function controller dan definisikan controller yang akan digunakan
sebelum function group dijalankan, lalu didalamnya kita cukup definisikan method
apa yang akan dipakai dari controller yang kita pakai. Contohnya seperti ini.
Ketika kita jalankan artisan route list, maka akan terlihat seperti ini.
C. Resources.
Terkadang ketika kita membuat sebuah route, code untuk memproses permintaan
dari pengguna di dalam route pasti tidak jauh dari membaca, membuat, mengubah
atau menghapus data (CRUD). Didalam laravel terdapat sebuah perintah artisan
yang akan secara otomatis dibuatkan method yang akan digunakan untuk keperluan
CRUD. Untuk membuatnya kita hanya perlu menambahkan --resources setelah
nama controller yang akan dibuat, seperti ini.
Ketika kita lihat controller yang telah kita buat semua method.
Kita bisa buat semua route diatas hanya dengan satu function pada saat membuat
route yaitu resource, contohnya seperti ini.
Untuk melihat semua route yang sudah kita buat, jalankan perintah artisan route list
di terminal kita,
Tampilan Ketika Menjalankan Route List.
D. Form.
Ketika aplikasi kita membutuhkan form HTML, pada saat mendefinisikan form
tersebut, kita harus menyertakan field CSRF tersembunyi pada form, sehingga
middleware CSRF dapat memvalidasi permintaan. kita juga dapat menggunakan
perintah @csrf untuk menghasilkan field token. Contohnya kita buat view baru untuk
membuat form di dalam folder user. Perintah untuk membuat view seperti ini.
View ini akan kita isi dengan form, bentuk form yang akan kita buat seperti ini.
Kita buat Method yang akan digunakan untuk menampilkan form didalam controller
users.
Method Baru Untuk Menampilkan View Form.
Lalu kita buat method kedua untuk memproses data yang dikirim dari form yang
sudah kita buat, code di dalam method seperti ini.
Semua data yang dikirim dari form disimpan didalam request->all(). Lalu kita
simpan semua data yang ada didalam request kedalam variabel, lalu kita tampilkan
kedalam view yang akan kita buat, dan di dalam view kita tambahkan isset untuk
memeriksa variabel yang akan digunakan pernah didefinisikan atau tidak.
Penambahan Isset Di Dalam View.
Kita perlu buat route agar method yang sudah kita buat bisa kita akses.
Di dalam form yang kita buat kita tambahkan action dan method agar data dari form
bisa diproses, sesuaikan dengan route yang telah kita buat untuk memproses data
yang dikirim dari form. Sesuaikan method yang ada di dalam form dengan route
yang kita gunakan untuk memproses data dari form.
Penambahan Action Dan Method Didalam Form.
Ketika kita submit maka akan diarahkan ke halaman blank dan akan memberikan
pesan page expired.
Tampilan Error Dikarenakan Tidak Diberikan Token CSRF Didalam Form.
Ini dikarenakan setiap form yang kita buat, kita memerlukan sebuah token yang di
generate oleh laravel, untuk mendapatkan token yang diperlukan kita dapat sisipkan
@csrf di dalam form yang telah kita buat. Seperti ini.
Pada saat kita membuat form, method yang tersedia di dalam HTML hanya POST
dan GET, kita tidak bisa membuat permintaan atau request seperti PUT, PATCH,
atau DELETE. Untuk membuat permintaan tersebut, kita perlu menambahkan field
tersembunyi _method untuk menipu kata kerja HTTP itu. Directive @method dapat
membuat field tersebut. Kita coba ubah route untuk memproses data kita menjadi
patch, seperti ini.
Ketika kita submit form akan muncul error method tidak mendukung.
Lalu kita submit form tadi, maka akan muncul pesan dengan data yang sesuai
dengan yang ada didalam form.
Tampilan Sebelum Submit Form.
E. Validation.
Ketika kita membuat sebuah form, terkadang kita perlu membuat sebuah validasi
agar data yang dimasukkan bisa lebih aman, didalam laravel kita bisa buat sebuah
validasi untuk form seperti minimal dari suatu input harus terdiri dari beberapa
huruf, atau file yang dikirimkan harus berupa gambar.
Untuk membuat validasi pada saat form di kirim yang kita buat bisa kita bisa buat
manual seperti ini.
Membuat Validasi Secara Manual.
Kita tambahkan kondisi jika nama dan umur dari payload nilainya kosong,
maka tampilkan pesan error.
Lalu didalam view create user kita tambahkan isset untuk memeriksa suatu
variabel sudah didefinisikan sebelumnya atau belum didefinisikan, lalu
didalamnya kita tampilkan pesan errornya. Seperti ini.
Menambahkan Isset Untuk Menampilkan Pesan Error.
Lalu didalam view untuk menampilkan pesan error, kita perlu check terlebih dahulu
apakah terdapat ketidaksesuaian dengan validasi yang kita berikan dari data yang
dikirim form. Jika ada maka di dalamnya kita lakukan perulangan untuk
menampilkan semua pesan error.
F. Upload File.
Ketika kita membuat halaman form, terkadang kita ingin menyisipkan data berupa
berkas atau file. Untuk membuat sebuah Upload File pertama tama kita perlu
menambahkan enctype pada form yang akan kita tambahkan upload file, lalu beri
nilai multipart/form-data. Lalu kita tambahkan juga input dengan type file, dan
juga kita tampilkan gambar yang sudah dikirim, seperti ini.
Menambahkan Enctype Dan Input File Di Dalam Form.
Lalu didalam controller, untuk menyimpan file yang dikirim dari form, kita dapat
menggunakan fungsi move untuk menentukan file yang dikirim disimpan dimana
dan diberikan nama seperti apa. Lalu untuk menghindari pemberian nama yang
sama pada file yang dikirim, kita buat nama file yang dikirim menjadi berupa huruf
acak, untuk membuat huruf acak kita bisa menggunakan fungsi hashName. Agar file
yang dikirim tidak sembarangan jenis file bisa disimpan, kita bisa memberikan
validasi di dalamnya.
Menambahkan Code Untuk Memproses File Yang Dikirim.
Lalu untuk melihat semua gambar yang telah disimpan bisa kita lihat di dalam folder
public/image.