Ve vašem aktuálním schématu nebudete moci označit roli umělce na základě alba.
Ve vašich tabulkách neexistuje žádný vztah, který by definoval, že položka v artist_role tabulka je pro konkrétní album. Navrhoval bych tedy vytvořit přechodnou tabulku obsahující role_id ,artist_id a album_id .
Chcete-li použít tuto přechodnou tabulku s laravelovým manyToMany vztahu, můžete ve svých modelech definovat metody specifikující jeden atribut jako atribut pivot.
Pro např. v Model umělce :
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('album_id');
}
public function Albums(){
return $this->belongsToMany('App\Albums')->withPivot('role_id');
}
Definujte podobné metody také pro ostatní modely..
Aktualizace:
Za získání Artist s jeho rolí v albu přidejte následující metodu do Album model:
public function Artists(){
return $this->belongsToMany('App\Artist')->withPivot('role_id');
}
Pro role přidejte následující metodu:
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('artist_id');
}