Pendahuluan Bayangin lagi ngerjain fitur sederhana, tapi tiba-tiba klien minta sistem tagging yang fleksibel buat nge-filter konten mereka. Awalnya saya mikir buat nambahin kolom teks biasa di tabel, tapi makin dipikirin malah ribet sendiri pas mau cari artikel berdasarkan dua tag sekaligus. Akhirnya saya sadar, relasi Many-to-Many di Laravel adalah penyelamat paling elegan buat handle kasus kayak gini tanpa bikin database berantakan. Tips & Best Practices Di banyak project, biasanya saya mulai dari bikin migration dengan nama pivot table yang sesuai konvensi Laravel seperti post_tag supaya Eloquent bisa langsung 'nyambung' tanpa banyak konfigurasi tambahan. Pas lagi nentuin nama method di model, saya selalu pakai bentuk jamak atau tags() supaya pas diakses via $post->tags rasanya natural banget kayak lagi ngobrol sama datanya. Buat performa aplikasi yang lebih oke, saya sering pakai attach() atau sync() dengan hati-hati terutama kalau datanya sudah mulai jutaan, bi...
Pendahuluan Bayangin lagi ngerjain fitur sederhana, tapi pas mau nambahin sistem like di berbagai tipe konten, malah ribet sendiri karena harus bikin tabel satu-satu. Dulu saya sempat mikir buat bikin tabel post_likes , comment_likes , dan seterusnya, tapi itu jadi mimpi buruk pas aplikasi mulai berkembang. Di sinilah Laravel MorphMany jadi penyelamat karena kita cuma perlu satu tabel untuk menampung semua interaksi like di seluruh aplikasi. Tips & Best Practices Di banyak project, biasanya saya mulai dari menaruh logic di model yang tepat supaya controller tetap bersih. Pertama, pastikan pakai index yang benar pada kolom morphable agar query nggak melambat saat data sudah jutaan. Kedua, jangan pernah biarkan user melakukan spam request, jadi selalu gunakan database transaction untuk menjaga integritas data. Ketiga, saya sarankan selalu memanfaatkan Eloquent Event atau Observer untuk meng-update counter like secara otomatis daripada menghitung manual setiap kali load halaman. Co...