Anda harus menggunakan polymorphic
hubungan untuk ini. Ini memungkinkan beberapa model untuk menggunakan satu tabel.
Dalam kasus khusus Anda, setiap tabel Anda akan mereferensikan noteable_id
kolom dan noteable_type
.
noteable_id
akan berisi id dari (A/B/C)
model.
The noteable_type
akan berisi nama string model (A/B/C)
.
(A/B/C)
model sekarang akan mendapatkan atribut baru:
/**
* (A/B/C) Model(s)
*/
public function notes()
{
return $this->morphMany('App\Notes', 'noteable');
}
Dan note
model akan memulai properti polimorfiknya terhadap nama atribut yang digunakan untuk mengidentifikasi polymorphic ids and types
Anda :
/**
* Note Model
*/
public function noteable()
{
return $this->morphTo();
}
Sekarang Anda cukup memanggil ->noteable
pada (A/B/C)
model, dan semuanya berbagi 1 tabel tanpa memerlukan tabel pivot lain untuk setiap tabel.