Fitur buat surat dengan Laravel

Halo, selamat malam semuanya.

Saya sedang mencoba membuat fitur buat surat, dari fitur tersebut terdapat setidaknya 7 pilihan surat. masing-masing surat memiliki model dan controller sendiri-sendiri (biar lebih rapi dan tidak campur aduk hehe), tapi saya menemui kebingungan di sini.

Untuk informasi tambahan, pada tabel mahasiswa primary key-nya adalah nomor nim.

Kebingungan saya ada pada saat user membuat surat, otomatis di situ akan memasukan nama mahasiswa dan nim-nya, yang mana hal tersebut berarti masing-masing model surat harus mempunyai relasi dengan model mahasiswa untuk mendapatkan nama mahasiswa dan juga nim-nya.

nah bagaimana cara mengatasi ketika user memasukan nama mahasiswa kolom nim juga mengikuti sesuai nim mahasiswa tersebut (dan juga sebaliknya, jika user memasukan nim maka kolom nama mahasiswa juga otomatis terisi oleh mahasiswa yang memiliki nim tersebut)?

avatar yuxxeun
@yuxxeun

91 Kontribusi 48 Poin

Diperbarui 9 bulan yang lalu

3 Jawaban:

Berarti keduanya harus unik. Dimana "nama mahasiswa kemungkinan tidak unik".

Bisa diakali dengan:

  • ajax setiap mencari nama maka muncul juge suggestion NIM untuk mahasiswa begitu juga sebaliknya. Jadi dilakukan "semi manual" di frontend, kita kasih rekomendasi, dia yang pilih.

Saya sarankan kalau Model surat ini tidak jauh berbeda, lebih baik disatukan, cukup dibedakan dengan kolom "category" misalnya.

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 10 bulan yang lalu

Tanggapan

tinggal pakai ajaxnya (jquery) yang masih belum jalan, jadi pas pilih nama mahasiswa otomatis kolom bawahnya (kolom nim) akan deteksi otomatis nim dari mahasiswa tersebut.

oh iya, ini sekolah koding yang baru emang belum bisa upload gambar? atau gambar harus du-upload lewat third-party dlu? soale dlu cukup screenschot pakai snipping tool trus paste di kolom komentar udah bisa kebaca, tapi sekarang udah engga bisa

Untuk mengatasi masalah tersebut, Anda dapat membuat relasi antara tabel mahasiswa dengan masing-masing model surat. Dalam relasi tersebut, kolom nim pada tabel mahasiswa akan menjadi foreign key yang terhubung dengan kolom nim pada tabel model surat. Dengan begitu, ketika user memasukkan nama mahasiswa pada form pembuatan surat, kolom nim pada form tersebut akan terisi otomatis sesuai dengan nim mahasiswa yang bersangkutan. Begitu juga sebaliknya, jika user memasukkan nim mahasiswa, kolom nama mahasiswa pada form akan terisi otomatis sesuai dengan nama mahasiswa yang bersangkutan.

Untuk membuat relasi antar tabel, Anda dapat menggunakan fasilitas designer pada Phpmyadmin[1]. Pertama-tama, klik basis data yang ingin dibuat relasi antar tabelnya. Perhatikan di bagian paling kanan ada tombol “designer” yang disediakan oleh Phpmyadmin untuk mengelola tabel-tabel yang terlibat. Tekan tombol tersebut untuk membuat relasi antar tabelnya. Misalnya tabel mahasiswa memiliki field nim yang merupakan foreign key dari tabel surat. Oleh karena itu perlu membuat relasi antara tabel mahasiswa dengan tabel surat. Tekan simbol relasi pada icon di jendela designer. Selanjutnya, pilih tabel mahasiswa dan tabel surat yang ingin dihubungkan. Pilih kolom nim pada tabel mahasiswa dan kolom nim pada tabel surat sebagai foreign key. Setelah itu, simpan relasi tersebut.

Dengan adanya relasi antar tabel, Anda dapat menggunakan query JOIN untuk mengambil data dari tabel mahasiswa dan tabel surat secara bersamaan. Misalnya, jika Anda ingin menampilkan nama mahasiswa dan nim pada form pembuatan surat, Anda dapat menggunakan query JOIN untuk mengambil data tersebut dari tabel mahasiswa dan menampilkannya pada form pembuatan surat.

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 10 bulan yang lalu

Jawaban Terpilih

sudah solved menggunakan jquery (ajax), begini kira-kira:

<script>
        $(document).ready(function() {
            $('#nama_mahasiswa').on('change', function() {
                var namaMahasiswa = $(this).val();
                $.ajax({
                    url: '/autocomplete',
                    method: 'POST',
                    data: {
                        _token: '{{ csrf_token() }}',
                        nama_mahasiswa: namaMahasiswa
                    },
                    success: function(data) {
                        $('#nim_mahasiswa').val(data.nim);
                    }
                });
            });
        });
</script>
avatar yuxxeun
@yuxxeun

91 Kontribusi 48 Poin

Dipost 10 bulan yang lalu

Tanggapan

terima kasih sudah share jawabannya

Login untuk ikut Jawaban