如何在Laravel中连接三个表?

时间:2016-09-04 13:46:53

标签: laravel laravel-5.2 laravel-5.3

我有桌子:OrdersProductsProducts_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");
    }

所以,我连接了两张桌子。此外,我还需要在此查询中使用表Products连接表Products_images

我该怎么做?

1 个答案:

答案 0 :(得分:1)

将product_images功能添加到产品型号

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

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

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

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