我想显示属于同一类别的相关项目。
这是我的 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_items_have_categories', 'food_item_category_id', 'food_item_id')
->withPivot('food_item_id', 'food_item_category_id')
->withTimestamps();
}
我想从特定类别中获取所有食品。假设用户点击了一个 ID 为 1 的食物项目,它属于类别 ID 2。现在我想显示更多属于类别 ID 2 的食物项目。我想在我的视图刀片中显示它。 现在,如何在视图中显示同一类别中的相关产品?
答案 0 :(得分:1)
由于您的关系是多对多的,您可以这样做:
$food = FoodItem::find(1);
$categories = $food->foodItemCategory;
$items = [];
foreach($categories as $category) {
$items[$category->id] = $category->foodItem;
}
然后您可以将 $items
传递给您的刀片模板。