目前我有三个表,一个是具有以下列的属性表:
第二个是具有以下列的标签表:
第3个是包含以下列的数据透视表:
现在在属性模型中,我已经像这样定义了与数据透视表的关系:
public function tags()
{
return $this->belongsToMany('Tag');
}
并且在Tag Model中我已经像这样定义了与数据透视表的关系:
public function properties()
{
return $this->belongsToMany('Property');
}
现在我需要的是如何使用雄辩的Laravel ORM在这三个表上编写以下查询:
$propertyTags=Property::join('property_tag', 'properties.id', '=', 'property_tag.property_id')
->join('tags', 'tags.id', '=', 'property_tag.tag_id')
->where('properties.id','=',$property_id)
->get(['tags.tag_name','tags.id']);
答案 0 :(得分:0)
你可以尝试
$property_obj = Property::find($property_id);
$property_tags = $property_obj->tags->all();
或使用预先加载
$property_with_tags = Property::with('tags')->where('id','=',$property_id)->get();