如何连接Laravel中的三个表?

How to connect three tables in Laravel?

我有你 tables: Orders, Products, Products_images.

我需要获得 ll 个订单,为此我这样做:

$orders = Order::with("products")->where("user_id", Auth::guard('api')->user()->id)->orderBy('id')->get();

其中 with("products") 是模型 Order

中的函数
public function products()
    {

        return $this->hasOne("App\Product", "id", "product_id");
    }

所以,我连接了两个 table。此外,我需要在此查询中使用 table Products 和 table Products_images 进行连接。

我该怎么做?

向产品模型添加 product_images 函数

public function product_images() { return $this->hasMany("App\ProductImage");}

修改以上行的 App\ProductImage 以反映您的 table 的模型。然后您可以通过执行以下操作访问属于您的产品的所有产品图像记录:

$orders = Order::with("products.product_images")->where("user_id", Auth::guard('api')->user()->id)->orderBy('id')->get();

在 link 的嵌套预先加载下查看:https://laravel.com/docs/5.3/eloquent-relationships#eager-loading