我有3个表(品牌-类别-产品)。每个产品属于一个品牌,并属于多个类别。有一个品牌页面,将显示该品牌的产品和该品牌的产品类别,所以我想使用laravel 9获得该品牌的类别,并将数据发送到API。
- 结构**
products
id
title
brand_id
price
etc...
categories
id
title
description
parent_id
product_categories
product_id
category_id
brands
id
title
logo
description
- 型号***产品. php *
public function brand()
{
return $this->hasOne(Brand::class, 'id', 'brand_id');
}
public function category()
{
return $this->belongsToMany(Category::class, 'product_categories');
}
- 分类. php *
public function parent()
{
return $this->hasOne(Category::class, 'id', 'parent_id');
}
public function children()
{
return $this->hasMany(Category::class, 'parent_id', 'id');
}
- 产品类别. php *
public function category(){
return $this->belongsTo(Category::class);
}
public function Products(){
return $this->hasMany(Product::class, 'id', 'product_id');
}
- 品牌. php *
public function products(){
return $this->hasMany(Product::class);
}
我想知道这个品牌的分类。
1条答案
按热度按时间8fsztsew1#
根据您希望如何使用结果以及希望在何处构造结果,您可以简单地执行此操作
这将加载一个给定的品牌及其所有的产品,然后为所有这些产品加载其给定的类别。它将使用3个quieres来获取所有的数据,然后给你一个完整的对象,如下所示:
产品将是一个集合(可能为空),类别也是如此
如果你想把这个精简到一个唯一类别的列表,你可以做以下事情。