duankeng9477 2018-12-12 21:36
浏览 61

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

When using eloquent to select a model with many to many relationship, it's very simple like:

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

This query will return all orders with the products for each order where order has a product with id = 1. When an order has many products, the query will return all products if order has a product with id = 1, but when using query builder to return the same result as eloquent, it's returning for each order just one product with id = 1.

Here is the query:

    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);

How to get all products for each order when order has a product with id = 1 even when using where clause?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ogg dd trandata 报错
    • ¥15 高缺失率数据如何选择填充方式
    • ¥50 potsgresql15备份问题
    • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
    • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
    • ¥60 pb数据库修改与连接
    • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
    • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
    • ¥20 神经网络Sequential name=sequential, built=False
    • ¥16 Qphython 用xlrd读取excel报错