我正试图弄清楚如何使用具有三种不同关系的数据透视表来建立我的关系。
users
- id
- username
products
- id
- name
tags
- id
- user_id
- name
user_products
- user_id
- tag_id
- product_id
使用“产品”模型时,我希望能够提取所有相关标签。我现在能够拉出“user_products”对象,但我想知道如何拉取实际的标签对象。
型号:
class User {
public function tags()
{
return $this->hasMany('UserTag');
}
}
class Product {
public function user()
{
return $this->belongsTo('User','user_products','product_id','user_id');
}
public function tags()
{
????
}
}
答案 0 :(得分:1)
return $this->belongsTo('User','user_products','product_id','user_id')
->withPivot('tag_id')
->join('tags', 'tags.id', '=', 'user_products.tag_id')
->select(...);
这样的事应该可以正常工作。