【发布时间】:2021-04-29 11:39:15
【问题描述】:
我想显示属于同一类别的相关项目。
这是我的 3 表结构
食品表 : “food_item_id”,
“姓名”,
“图像”,
食品类别表:
“food_item_category_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 中的食品项目。我想在我的视图刀片中显示它。 现在,如何在同一类别的视图中显示相关产品?
【问题讨论】:
-
嗨。您有数据透视表,因此一个项目可以有零个或多个类别。你想选择哪一个?重要还是您只想要任何具有此项目类别的项目?
-
@Mohammad Mirsafaei,假设我有 ID 为 1、2、3、4、5 的食物。现在我选择项目 ID 1,它属于类别 3。在类别 ID 3 中可能有更多项目,例如食品项目 ID 3,5 或没有,如果食品项目具有相同的类别 ID,我想显示。当用户单击食品 ID 1 时,它会显示项目 ID 1 的详细信息,并在下面显示项目 ID 3、5 的详细信息,因为项目 1、3、5 具有相同的类别 ID 3
-
@Prince 项目可能有很多类别,比如 A、B 和 C?然后相关项目将从 AB 和 C 类别中显示或有任何其他情况,而且您有多对多映射,
withPivot子句是多余的,因为它包含已在您的belongsToMany子句中定义的外键跨度>
标签: php laravel eloquent eloquent-relationship