Dalam skema Anda saat ini, Anda tidak akan dapat menandai peran artis berdasarkan album.
Karena tidak ada hubungan dalam tabel Anda untuk mendefinisikan bahwa entri di artist_role
tabel adalah untuk album tertentu. Jadi, yang saya sarankan adalah membuat tabel perantara yang berisi role_id
,artist_id
dan album_id
.
Untuk menggunakan tabel perantara ini dengan manyToMany
laravel hubungan, Anda dapat menentukan metode dalam model Anda dengan menetapkan satu atribut sebagai atribut pivot.
Untuk, misalnya di Model Artis :
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('album_id');
}
public function Albums(){
return $this->belongsToMany('App\Albums')->withPivot('role_id');
}
Tentukan metode serupa untuk Model lain juga..
Pembaruan:
Untuk mendapatkan Artist
dengan perannya di Album tambahkan metode berikut di Album
model:
public function Artists(){
return $this->belongsToMany('App\Artist')->withPivot('role_id');
}
Untuk peran tambahkan metode berikut:
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('artist_id');
}