whereIn 查询不工作 laravel
whereIn query not working laravel
你能帮我查询一下有什么问题吗?在第二个变量中,我不能简单地使用 whereIn 方法输出 blade 中的内容。我应该在 $filterrecord 变量中添加另一个 where,但经检查,它甚至没有通过。
控制器
$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 的第 2 个参数是 array.But 您的变量“$querys”是一个集合 object.convert 到列表数组 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)
数据库查询returnscollection,whereIn接受数组,所以先把collection转为数组,可以用下面的代码实现
$filterrecord
= RecordHistory::select('profile_id', 'membership_type')
->whereIn('profile_id', $querys->toArray())
->get();
如果您在查询中使用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 方法输出 blade 中的内容。我应该在 $filterrecord 变量中添加另一个 where,但经检查,它甚至没有通过。
控制器
$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 的第 2 个参数是 array.But 您的变量“$querys”是一个集合 object.convert 到列表数组 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)
数据库查询returnscollection,whereIn接受数组,所以先把collection转为数组,可以用下面的代码实现
$filterrecord
= RecordHistory::select('profile_id', 'membership_type')
->whereIn('profile_id', $querys->toArray())
->get();
如果您在查询中使用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();