これにはpolymorphic
の関係を使用する必要があります。複数のモデルで1つのテーブルを使用できます。あなたの特定の場合において
Have a look at the documentation here
、あなたのテーブルの各々はnoteable_id
列とnoteable_type
を参照することになります。
noteable_id
には、(A/B/C)
モデルのIDが含まれます。
noteable_type
には、(A/B/C)
の文字列名が含まれます。
(A/B/C)
モデルは今、新しい属性を取得します:
/**
* (A/B/C) Model(s)
*/
public function notes()
{
return $this->morphMany('App\Notes', 'noteable');
}
をそしてnote
モデルでは、それはあなたのpolymorphic ids and types
を識別するために使用される属性名に対する多型のプロパティです開始します。
/**
* Note Model
*/
public function noteable()
{
return $this->morphTo();
}
今することができます(A/B/C)
モデルの->noteable
を呼び出すだけで、各テーブルごとに別のピボットテーブルを必要とせずに1つのテーブルを共有できます。