سلام بین 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());
});
سلام داداش اینی گفتید هم عمل نکرد
یکی از مشکلاتی whereIn داره اینه که مثلا من 1 و 2 میخوام
اونی که چه 1 و 2 رو داره
و هم اونی که 1 و 3 رو داره میاره راه حلی خودم به نظرم میرسه با حلقه for بتونم اکی کنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟