[英]whereIn query not working laravel
您能帮我查询什么问题吗? 在第二个变量中,我不能简单地使用whereIn方法将其输出到刀片中。 我应该在$ filterrecord变量中添加另一个位置,但是经过检查,它甚至都没有通过。
控制者
$querys
= RecordHistory::select(DB::raw('profile_id, max(effective_date) as date, membership_type'))
->groupBy('profile_id')
->orderBy('date', 'desc')
->get();
$filterrecord
= RecordHistory::select('profile_id', 'membership_type')
->whereIn('profile_id', $querys)
->get();
数据库查询返回集合并且whereIn接受数组,因此首先将集合更改为数组,您可以使用以下代码并实现它
$filterrecord
= RecordHistory::select('profile_id', 'membership_type')
->whereIn('profile_id', $querys->toArray())
->get();
如果在查询中使用whereIn
, whereIn
逗号分隔传递多个ID
$querys
= RecordHistory::select(DB::raw('profile_id, max(effective_date) as date, membership_type'))
->groupBy('profile_id')
->orderBy('date', 'desc')
->get();
$ids = array();
foreach($querys as $item){
$ids[]=$item->profile_id;
}
$filterrecord
= RecordHistory::select('profile_id', 'membership_type')
->whereIn('profile_id', $ids)
->get();
whereIn的参数2th是数组。但是您的变量“ $ querys”是一个集合对象。将其转换为列表profile_id的数组。
$ids = array();
foreach($querys as $item){
$ids[]=$item->profile_id;
}
要么
$ids = array();
foreach($querys as $item){
$ids[]=$item['profile_id'];
}
并像这样使用它:
->whereIn('profile_id', $ids)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.