Kali ini saya akan berbagi tips untuk menampilkan hasil dari relasi many-to-many antara tiga tabel. Contoh relasi many-to-many yaitu antara Book dan Author. Buku bisa ditulis oleh lebih dari satu Pengarang, dan Pengarang bisa menulis lebih dari satu Buku. Sehingga kita akan membuat tiga tabel : book, author, dan tabel Relasinya : book_author.
1. Buat tabel book, author, dan book_author dan isi dengan data dummy masing-masing :
Data dummy untuk book_author : Buku Satu ditulis oleh Pengarang Satu dan Pengarang Dua, Buku Dua ditulis oleh Pengarang Satu dan Pengarang Empat, Buku Tiga ditulis oleh Pengarang Satu, Pengarang Dua, dan Pengarang Tiga.
2. Buat Model Book, Author, dan BookAuthor di folder common.
3. Kita akan coba tampilkan di frontend. Buat public actionRelationview di SiteController.php /frontend/controllers.
Buat file relationview.php di frontend/views/site/
4. Kita akan menampilkan Buku apa saja yang ditulis oleh Pengarang Satu.
Pertama-tama, hubungkan model Book dengan model BookAuthor dengan cara modifikasi model Book ( dengan menambahkan relasi hasMany yang berarti buku ditulis oleh banyak penulis :
Setelah itu, kita akan menghubungkan Model BookAuthor dengan model Author supaya bisa menampilkan nama Pengarangnya, dengan relasi HasOne. Tambahkan di Model BookAuthor.php :
5. Kita tuliskan kode berikut di relationview.php yang tadi sudah kita buat :
Penjelasan : Jika model Buku kita dengan id tertentu memiliki author, maka tampilkan setiap author yang menulis buku tersebut.
Untuk mengaksesnya kita perlu menyertakan parameter id :
Coba sobat ganti-ganti id nya, maka akan menyesuaikan :
Happy Coding!