这是我的代码:$search = request()->get('search'); $conciergerieSelect = request()->get('conciergerie'); $services = Service::get(); $prestations = Prestation::with([ 'service:name' ]) ->whereIn('conciergerie_ids', $conciergerieSelect) ->where('name', 'regexp', "/$search/i") ->paginate(100); return $res = [ 'prestations' => $prestations, 'services' => $services ];我需要得到所有conciergerie_ids等于$conciergerieSelect.conciergerie_ids是一个 id 表。$conciergerieSelect是一个身份证。我尝试使用 whereIn,但出现错误:“提供的 foreach() 无效”谢谢。
2 回答

aluckdog
TA贡献1847条经验 获得超7个赞
whereInLaravel 提供的方法接受一个数组作为第二个参数。
请将子句中的$conciergerieSelect变量替换为:[$conciergerieSelect]whereIn
//...
->whereIn('conciergerie_ids', [$conciergerieSelect])

qq_遁去的一_1
TA贡献1725条经验 获得超8个赞
在您的帮助下,这里的工作代码:
$search = request()->get('search');
$conciergerieSelect = request()->get('conciergerie');
$services = Service::get();
$prestations = Prestation::with([
'service:name'
])
->whereIn('conciergerie_ids', [$conciergerieSelect]) <--
->where('name', 'regexp', "/$search/i")
->paginate(100);
return $res = [
'prestations' => $prestations,
'services' => $services
];
- 2 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消