Laravel查询构建器上的多对多关系

时间:2018-12-12 21:36:33

标签: php laravel laravel-query-builder

使用雄辩的方式选择具有多对多关系的模型时,它非常简单,例如:

$orders = Order::with('products')->whereHas('products', function($query){
    $query->where('id', '=', 1);
});

此查询将返回每个订单中产品带有id = 1的所有订单。当订单中有很多产品时,如果订单中的产品带有id = 1,则查询将返回所有产品, 但是当使用查询生成器返回与雄辩的结果相同时,对于每个订单,仅返回一个带有id = 1的产品。

以下是查询:

    DB::table('orders')->join( 'order_product', 'orders.id', '=', 'order_product.order_id' )
                    ->join( 'products', 'products.id', '=', 'order_product.product_id' )
                    ->whereIn('products.id', $this->products);

即使订单中使用id = 1子句,如果订单的商品带有where,如何获取每个订单的所有商品?

0 个答案:

没有答案