在laravel 5.4中生成模型关系

时间:2017-10-31 06:24:33

标签: eloquent laravel-5.4 relationships

我有3个桌子&模型:

1) product
-----------
id, name, c_id, sku

2) category
----------
id, name, parent_c_id

3) parent_category
-----------------
id, name

如何使用雄辩关系获取类别和父类别的产品详细信息?

1 个答案:

答案 0 :(得分:0)

Eloquent让您定义模型类中模型/表之间的关系。要定义模型具有外键,可以使用belongsTo来定义模型属于另一个模型。

// Product.php
public function category()
{
    return $this->belongsTo('App\Category');
}

// Category.php
public function category()
{
    return $this->belongsTo('App\ParentCategory');
}

Eloquent将在数据库表中查找名为<lowercase modelname>_id的列。对于Product而言category_idProduct 属于 Category

如果您不想更改列名,可以将外键定义为第二个参数:

return $this->belongsTo('App\Category', 'c_id');

您可以在Laravel Docs

中了解这些关系

更新#1

看起来我误解了你的问题,所以基于你的评论,我认为这应该有效:

Product::with('category')
    ->with('category.parent_category')
    ->get();