在 laravel 5.4 中生成模型关系

Generate Model relationship in laravel 5.4

我有 3 个 table & 型号:

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

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

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

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

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

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

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

Eloquent 将在数据库 table 中查找名为 <lowercase modelname>_id 的列。对于 Product 这将意味着 category_id,因为 Product 属于 Category.

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

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

您可以在 Laravel Docs

中阅读这些关系

更新#1

看来我对你的问题有点误解,所以根据你的评论,我认为这应该可行:

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