如何解决如何通过数据透视表展示相关产品?
我想显示属于同一类别的相关项目。
这是我的 3 个表结构
食品项目表 : "food_item_id",
"姓名",
"图片",
食品类别表:
“food_item_category_id”
“姓名”
数据透视表
id,
food_item_id
food_item_category_id
FooItem 模型:
public function foodItemCategory() {
return $this->belongsToMany(FoodItemCategory::class,'food_items_have_categories','food_item_id','food_item_category_id')
->withPivot('food_item_id','food_item_category_id')
->withTimestamps();
}
食品类别模型:
public function foodItem() {
return $this->belongsToMany(FoodItem::class,'food_item_category_id','food_item_id')
->withPivot('food_item_id','food_item_category_id')
->withTimestamps();
}
我想从特定类别中获取所有食品。假设用户点击了一个 ID 为 1 的食物项目,它属于类别 ID 2。现在我想显示更多属于类别 ID 2 的食物项目。我想在我的视图刀片中显示它。 现在,如何在视图中显示同一类别中的相关产品?
解决方法
由于您的关系是多对多的,您可以这样做:
$food = FoodItem::find(1);
$categories = $food->foodItemCategory;
$items = [];
foreach($categories as $category) {
$items[$category->id] = $category->foodItem;
}
然后您可以将 $items
传递给您的刀片模板。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。