2016-06-20 10 views
0

私は3つのテーブルA、B、Cを持っています。 これらの3つのテーブルはすべてメモテーブルを使用する必要があります。残りの2つのテーブルについても同様です)。
A_note、B_note、C_note(ここでは、multiple tables need one to many relationship)という3つのテーブルを作成しました。1対多の関係(Laravel)を持つ複数のテーブル

これらのテーブル(A_note、B_note、C_note)でCRUD操作を行う方法は、多対多の関係でピボットテーブルを扱う方法と似ていますか?

今後の方法をお勧めします。

答えて

1

これには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つのテーブルを共有できます。

関連する問題