Laravel Eloquent,用whereIn获取ids数组中的所有数据?

Laravel Eloquent, get all datas in ids array with whereIn?

这是我的代码:

$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 是 table 个 ID。

$conciergerieSelect是一个id。

我尝试使用 whereIn 但出现错误:"Invalid supplied foreach()" 谢谢。

Laravel提供的whereIn方法接受一个数组作为第二个参数。

请将 whereIn 子句中的 $conciergerieSelect 变量替换为 [$conciergerieSelect]:

//...
->whereIn('conciergerie_ids', [$conciergerieSelect])

这是您帮助下的工作代码:

$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
];