关于 ORM 联查的问题,求解答

order表

id code
1 O20200109144737000000005

order_details表

id order_code total_fee
1 O20200109144737000000005 461.00

现在有两个表 order必须做为主表。用ORM模型查出来数据如下

            {
                "id": 1,
                "code": "O20200109144737000000005",
                "order_details": [
                    {
                        "id": 5,
                        "order_code": "O20200109144737000000005",
                        "total_fee": "461.00"
                    }
                ]
            }

我想取出order_details的【total_fee】字段来作为where条件用。要怎么写。主表不能变。我这个只是简单的取个例子。后面会涉及到多表。求大牛们解答一下。感谢

        $user = Evaluate::select('id','order_code')->where(function ($query) use($param, $userInfo){
            // $query -> where('status', '=', '600');

         })->with('order')
        //  ->where('total_fee','461');  //这里这么写会报错
         ->where('order_details.total_fee','461');  //这里这么写会报错
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

添加订单跟订单详情的模型关系,然后类似下面这样

$user = Evaluate::select('id','order_code')->where(function ($query) use($param, $userInfo){
            // $query -> where('status', '=', '600');

         })->with(['order', 'order.details' => function ($query) use ($total_fee) {
              $query->where('total_fee', $total_fee)
         ])
         ->get();
5年前 评论

请认真阅读我们的文档.jpg

5年前 评论

1 楼用 with 是有问题的

$user = Evaluate::whereHas('order_details', function ($query) use ($total_fee) {
    $query->where('total_fee', $total_fee);
})->get();
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!