使用 Eloquent ORM 使用 with 模型关联查询同字段的解决

如何在with模型关联的时候,对于两个表中的相同字段都有条件的解决。不了解的话,大家可以先去看我之前在社区的一个问题,当时并没有得到很好的解决。
问答:两表使用 with 关联模型后,怎么实现不同表字段的条件查询和分组?

今天呢又遇到了这个问题,所以必须解决掉。网上资料呢,和自己要的结果不一样,emm...没有找到答案。然后自己整了一个多小时。给大家分享一下。这么些已经很清楚了吧?

        $sale_item_daily_price_info = SaleItemsDailyPriceSchedule::with([
            'schedule_info'=>function($query) use ($sale_item_id){
                   return $query->select('sale_item_id','start_time','new_price','schedule_id')
                   ->where('status','=',1)
                   ->whereIn('sale_item_id',$sale_item_id);
            }
        ])
        ->select('id')
        ->where('status','<>',9)
        ->where('start_time','>=',date('Y-m-d H:i:s'))
        ->get();

最重要的一点不要忘记,如果你想要指定字段,使用select时,一定一定要将两个表的关联字段写道里面,不然是查不到关联关系的

不过使用with的时候,各位小伙伴一定要使用对hasMany和belongsTo(一对多的关系)。关系搞乱了数据也是不对😊,注意点就好了。

Reality Change Me
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

有什么不对的,大家可以指出

10个月前 评论

很好,依照楼主已解决,非常感谢!

9个月前 评论
Complicated

我一般都习惯这么写 with('User:id,name,sex,age'), 冒号+你要查的字段

9个月前 评论

为什么不考虑在field前边加上表的前缀,例如users.start_time

2个月前 评论
忽而今夏 (楼主) 2个月前

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