我有三个表,即1.Product 2.Category和3.Attribute,每个类别有不同的属性名称,例如:Mobile有RAM,Processor.All属性名称保存在属性表中。当我想要有人进入时属性值属性值应来自Product表中的属性表,具体取决于用户选择的categoryname。并且在所有三个表中类似的键是Categoryname。
关系如下
产品型号:
public function categories()
{
return $this->hasMany(Category::class);
}
public function attributes()
{
return $this->hasMany(Attribute::class);
}
类别模型:
public function products()
{
return $this->belongsTo(Product::class);
}
public function attributes()
{
return $this->hasMany(Attribute::class);
}
属性模型:
public function categories()
{
return $this->belongsTo(Category::class);
}
如何通过类别表
显示Product表中属性表的属性名称答案 0 :(得分:0)
$category=Category::where(['name'=>$name])->with('product','attributes')->first();
然后,
foreach($category->attributes as $attribute)
{
print_r($attribute->name);
}
将为所有属性设置名称$name
print_r($category->product->name);
为该产品提供该类别。
注意:如果产品包含多个类别,则产品和类别之间的关系应为多对多,除非给定类别只有一个产品。