Laravel 5:显示第一个表中第三个表的列数据,其中两个表都连接到第二个表

时间:2016-10-16 03:03:50

标签: laravel laravel-5 foreign-key-relationship

我有三个表,即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表中属性表的属性名称

1 个答案:

答案 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);为该产品提供该类别。

注意:如果产品包含多个类别,则产品和类别之间的关系应为多对多,除非给定类别只有一个产品。