سلام
من دوتا جدول دارم جدول user و blockuser
با استفاده از یک لیست انتخابی user ها رو انتخاب می کنبم برای مسدود کردن کاربر
زمانی که کاربر مسدود میشه user_id اون کاربرمیره توی جدول blockuser
حال من میخوام زمانی که لیست رو میخوام انتخاب کنم اون کاربری که مسدود شده بود رو نشون نده در واقع کاربر های که مسدود شده نشده اند رو نشون بده
این join query هست که من نوشتم اما عمل نمی کنه همون افرادی که توی لیست بلاک هستند رو دوباره نشون میده
$user_list = DB::table('users')
->join('blockusers', 'users.id', '=', 'blockusers.user_id')
->select('users.*')
->pluck("name","id");
سلام به نظرم می تونید از یک کوئری شبیه این استفاده کنید.
DB::table(..)->select('all users')->whereNotIn('select id from blockusers ')->get();
سلام
می تونی به لینک زیر مراجعه کنی که کامل توضیح داده باید چی کارش کنید
https://laracasts.com/discuss/channels/eloquent/laravel-get-records-from-one-table-that-doesnt-exist-in-another-with-a-where-clause-attached
این کاری که شما انجام دادید یه کار کاملا غیر اصولیه
باعث میشه درخواست های sql بالا بره و وقتی اطلاعاتتون بیشتر بشه دچار مشکلی میشید
پیشنهاد میکنم حتما درمورد نرمال سازی جداول دیتابیس مطالعه کنید
شما باید تو همون جدول users یک فیلد به نام blocked میذاشتید
مثلا اینطوری
$table->string('blocked')->default(false);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟