2016-10-31 10 views
0

を使用して、多くの関係に多くの複数の私は嘘に見えるテーブルを持っています。キッカーは、この参照テーブルが提供する2番目のテーブルがmember_typeという値に依存することです。Laravel /雄弁一つの基準表

上記テーブルを使用して接続されているテーブルは、incidents,user_member_incidentsおよびserver_member_incidentsです。参照表のmember_id列は、user_member_incidents表またはserver_member_incidents表のいずれかを参照します。これは、member_type列の値によって決まります。

EloquentでbelongsToManyメソッドを使用すると、この関係はどのように反映されますか?あなたは次の関係を定義することができ、あなたがIncidentUserMember、およびServerMemberモデルを持っていると仮定すると

+0

あなたは[多対多の多型関係](https://laravel.com/docs/5.3/eloquent-relationships#many-to-many-polymorphic-relations)を考慮しましたか? –

答えて

2

class Incident extends Model 
{ 
    public function userMember() 
    { 
     return $this->belongsToMany(
      UserMember::class, 
      'your_pivot_table_name', 
      'incident_id', 
      'member_id' 
     )->wherePivot('member_type', 1); 
    } 

    public function serverMember() 
    { 
     return $this->belongsToMany(
      ServerMember::class, 
      'your_pivot_table_name', 
      'incident_id', 
      'member_id' 
     )->wherePivot('member_type', 2); 
    } 
} 

が、これは、あなたの質問に答える願っています。