En su esquema actual, no podrá etiquetar el rol del artista en función del álbum.
Como no hay relación en sus tablas para definir que la entrada en artist_role
la tabla es para un álbum específico. Entonces, lo que sugeriría es crear una tabla intermedia que contenga el role_id
,artist_id
y album_id
.
Para usar esta tabla intermedia con manyToMany
de laravel relación, puede definir los métodos en sus modelos especificando un atributo como atributo pivote.
Para, p. en Modelo de artista :
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('album_id');
}
public function Albums(){
return $this->belongsToMany('App\Albums')->withPivot('role_id');
}
Defina métodos similares para otros modelos también..
Actualizar:
Por obtener Artist
con su función en el Álbum agregue el siguiente método en el Album
modelo:
public function Artists(){
return $this->belongsToMany('App\Artist')->withPivot('role_id');
}
Para roles agregue el siguiente método:
public function Roles(){
return $this->belongsToMany('App\Roles')->withPivot('artist_id');
}