|
Aplikasi Pendataan Warga Desa dengan Laravel 7 - Tutorial 06 |
Halo! Pada kesempatan kali ini kita akan membahas bagaimana caranya membuat laporan mandiri dan melihat riwayat laporan yang pernah dilakukan oleh user. Ini merupakan fitur utama dari aplikasi yang akan kita selesaikan.
Sidebar
Baik, langsung saja. Buka file views/layouts/user_module/sidebar.blade.php. Tambahkan kode program berikut untuk membuat menu baru, yaitu laporan mandiri dan riwayat laporan.
Routes
Selanjutnya, kita akan membuat route untuk laporan mandiri dan riwayat laporan. Buka file routes/web.php lalu tambahkan kode program di bawah ini. Sederhananya, kita membuat route untuk report atau laporan, di sini kita tidak akan menggunakan fitur show, edit, update atatupun destroy, maka dari itu kita masukkan ke dalam except.
Selain itu, terdapat as => user di sana, apa itu? Itu artinya di depan setiap route reports akan ditambahkan user untuk penamaannya. Lebih jelasnya silahkan lihat routes yang sudah kita buat dengan menggunakan perintah php artisan route:list.
|
Routes
|
Relationships
Sebelum membuat view untuk laporan mandiri dan riwayat laporan, kita harus mendefinisikan relasi yang sudah kita buat di database. Relasi yang kita gunakan adalah one to many. Buka, model User.php, Job.php, City.php, Province.php dan Report.php yang ada pada folder app, lalu tambahkan kode program berikut ini.
Model User.php.
Model Job.php.
Model City.php.
Model Province.php.
Model Report.php.
Laporan Mandiri
Sekarang, buka file app/Http/Controllers/ReportController.php, lalu tambahkan kode program ini pada fungsi create. Selain itu, jangan lupa untuk menambahkan use App\Province;.
Selanjutnya, pada folder views, buat sebuah folder baru dengan nama user, lalu di dalam folder user, buat sebuah folder baru dengan nama reports. Buat dua buah file dengan nama create.blade.php dan index.blade.php pada folder tersebut. File create digunakan untuk membuat membuat laporan mandiri sedangkan file index akan digunakan untuk melihat riwayat laporan.
Buka file views/user/reports/create.blade.php, lalu sesuaikan kode programnya menjadi seperti ini.
Perhatikan pada custom-js, di situ kita menggunakan Javascript untuk mengambil semua kota berdasarkan id dari provinsi. Untuk apa kita melakukan itu? Tujuannya adalah agar kota yang tampil hanyalah kota yang sesuai dengan provinsi yang sedang dipilih.
API
Buka file routes/api.php. Tambahkan kode program ini. Secara otomatis Laravel akan menambahkan api untuk semua api route yang kita buat.
Selanjutnya, buka file app/Http/Controllers/CityController.php. Tambahkan kode program di bawah ini. Mudahnya, fungsi ini akan mengembalikan semua kota sesuai dengan provinsi yang sedang dipilih. Jika user memilih Provinsi Jawa Tengah, maka akan didapatkan semua kota yang ada di Jawa Tengah. Data ini akan dikembalikan dalam format JSON.
Jika semua step dikerjakan dengan baik, maka akan tampil seperti ini.
|
Kota tampil sesuai dengan provinsinya.
|
Jika tombol submit diklik, maka akan tampil halaman kosong, kenapa? Itu karena kita belum mendefinisikan fungsi store untuk menyimpan data yang dibuat. Buka kembali file app/Http/Controllers/ReportController.php, lalu sesuaikan menjadi seperti ini.
Fungsi index digunakan untuk menampilkan seluruh laporan mandiri yang dibuat oleh user, sedangkan fungsi store berguna untuk menyimpan data yang disubmit oleh user saat membuat laporan mandiri.
Jangan lupa untuk menambahkan fillable pada model Report.php agar bisa menambahkan data baru.
Sekarang, cobalah untuk membuat sebuah laporan mandiri. Setiap laporan yang dibuat akan masuk ke tabel reports, seperti di bawah ini.
|
Laporan yang dibuat oleh user sudah tersimpan di database.
|
Riwayat Laporan
Sekarang kita akan menampilkan riwayat laporan yang pernah dibuat oleh user. Riwayat laporan yang tampil hanyalah laporan mandiri yang pernah ia buat dengan kata lain laporan mandiri yang dibuat oleh orang lain tidak akan tampil.
Tadi, kita sudah membuat fungsi index di ReportController, artinya kita hanya perlu menambahkan view pada views/user/reports/index.blade.php. Sesuaikan kode programnya seperti di bawah ini. Pada program, terdapat reports-links, apa itu? Itu berguna untuk menampilkan paginate. Jika kalian membuka suatu website, pasti pernah melihat back, 1, 2, 3, next pada bagian bawah. Itu disebut dengan paginate.
Jangan lupa untuk menambahkan kode program ini pada bagian use atau import
ReportController.php.
Jika semua berjalan dengan baik, maka akan tampil seperti ini.
|
Riwayat laporan yang pernah dibuat oleh user.
|
Selamat! Sejauh ini kita sudah berhasil membuat fungsi utama dari aplikasi ini. Topik selanjutnya adalah menampilkan dan mengedit profile user.
Sekian postingan kali ini, semoga bermanfaat.
0 Comments