Laravel与三张桌子的关系

时间:2017-06-27 13:30:56

标签: laravel

我正在忙着建立一个在线订购系统,但现在我仍然坚持这种表关系。

我希望用户能够创建许多订单,订单将包含许多产品。

我查看了多对多关系,但它不包含第三个表。

1 个答案:

答案 0 :(得分:1)

透视表的基本多对多关系发布,并在像belongsToMany

这样的laravel中声明

在您的情况下,您可以使用hasManyThgough关系访问通过订单与用户关联的所有产品

User.php

public function orders() {
    return $this->hasMany('App\Order');
}

public function products() {
    return $this->hasManyThrough('App\Product', 'App\Order');
}

Order.php

public function products() {
    return $this->hasMany('App\Product');
}

Link to laravel relationship hasManyThrough documentation