In uw huidige schema kunt u de rol van de artiest niet taggen op basis van album.
Omdat er geen relatie is in uw tabellen om te definiëren dat het item in artist_role
tafel is voor een specifiek album. Dus wat ik zou willen voorstellen is om een tussenliggende tabel te maken met de role_id
,artist_id
en album_id
.
Om deze tussentabel te gebruiken met laravel's manyToMany
relatie, kunt u de methoden in uw modellen definiëren door één attribuut als pivot-attribuut op te geven.
Voor bijv. in Artiestenmodel :
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('album_id');
}
public function Albums(){
return $this->belongsToMany('App\Albums')->withPivot('role_id');
}
Definieer vergelijkbare methoden ook voor andere modellen..
Bijwerken:
Voor het verkrijgen van Artist
met zijn rol in Album voeg de volgende methode toe in het Album
model:
public function Artists(){
return $this->belongsToMany('App\Artist')->withPivot('role_id');
}
Voeg voor rollen de volgende methode toe:
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('artist_id');
}