Rumah > Soal Jawab > teks badan
Saya kini mempunyai 3 meja, tags
、product
、album
.
product
、album
相关联的标签都在tags
里面。通过biz_type
进行区分,1表示product
, 2表示album
.
Hubungan jadual adalah seperti berikut
table_tags
id: int
biz_type: int
biz_id: int
table_product
id: int
table_album
id: int
Saya kini berharap untuk menanyakan perkaitan polimorfik tags
的分页列表,去关联获取product
和album
的信息。
目前查看了laravel
, tetapi nampaknya pendekatan ini tidak disokong. Adakah terdapat cara untuk berhubung melalui keadaan?
PHP中文网2017-05-16 16:53:56
Perkaitan banyak-ke-banyak Laravel bercakap tentang perkara ini. Senario penggunaan ini agak serupa dengan anda. Anda boleh lihat
http://www.kancloud.cn/baidu/...
Struktur Jadual Hubungan Polimorfik Banyak Kepada Banyak Struktur jadual pangkalan data polimorfik banyak ke banyak
Selain persatuan polimorfik am, persatuan polimorfik banyak-ke-banyak juga boleh digunakan. Contohnya, model Post dan Video Blog boleh berkongsi model persatuan Tag polimorfik. Mula-mula, mari kita lihat struktur jadual pangkalan data:
siaran
id - integer
name - string
video
id - integer
name - string
tag
id - integer
name - string
taggables
tag_id - integer
taggable_id - integer
taggable_type - string
Kini, kami bersedia untuk menubuhkan persatuan model. Kedua-dua model Post dan Video boleh mewujudkan persatuan morphToMany melalui kaedah tag:
Pos kelas memanjangkan Model {
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
}
Buat kaedah untuk setiap persatuan dalam model Tag:
Teg kelas memanjangkan Model {
public function posts()
{
return $this->morphedByMany('App\Post', 'taggable');
}
public function videos()
{
return $this->morphedByMany('App\Video', 'taggable');
}
}
怪我咯2017-05-16 16:53:56
Anda juga boleh melaksanakan pertanyaan korelasi sendiri Pada masa ini, rangka kerja tidak menyediakan pertanyaan bersyarat untuk korelasi polimorfik kerana ia terlalu kompleks.