使用 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(一对多的关系)。关系搞乱了数据也是不对😊,注意点就好了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
很好,依照楼主已解决,非常感谢!
我一般都习惯这么写 with('User:id,name,sex,age'), 冒号+你要查的字段
为什么不考虑在field前边加上表的前缀,例如users.start_time