سلام بین user و role رابطه many to many دارم میخوام کاربرانی رو برگردونم که role شماره ۱ و ۲ رو دارن فقط ۱ و ۲ نه role دیگه ای رو
$users = $users->whereHas('roles', function ($q) {
$q->whereIn('id', [1, 2]);
});
ولی این کد جواب نمیده چون 1,3 رو برمیگردونه
میتونی برعکس عمل کنی یعنی به ازای هر role یوزراشو بگیری و مرج کنی!
$roles = Role::whereIn('id',[1,2])->with('users')->get();
بعدش یه حلقه ران کن روی رول ها یوزرهاشون رو بگیر.
یا اینکه از whereNotIn استفاده کن و اون قسمتی که نمیخوای رو درج کن به صورت زیر
$users = $users->whereHas('roles', function ($q) {
$q->whereIn('id', [1, 2])
->whereNotIn('id', Role::whereNotIn('id', [1, 2])->get());
});شاید پاسخ شما همینجا باشد