محمدهادی غفوری
4 سال پیش توسط محمدهادی غفوری مطرح شد
0 پاسخ

ترکیبی از شرایط And و Or در گرفتن کوئری

سلام
جدول Contents دارای آیتم هایی که هر کدام دارای چندین Tag هستند. یعنی رابطه Content و Tag از نوع Many to Many است.
من میخوام Content هایی را استخراج کنم که مثلاً دارای tag4 یا tag2 هستند و حتماً tag10 یا tag20 را هم دارند.
(tag 2 or tag4)
AND
(tag 10 or tag20)

از این کد استفاده کردم ولی جواب نمیدهد و نتایج را اشتباه بر می گرداند

        $contents=Content::query();
            $contents
                ->whereHas('tags',function($q) {
                    $q->where('tags.id',2);
                    $q->orWhere('tags.id',4);
                })
                ->WhereHas('tags',function($d) {
                    $d->where('tags.id',10);
                    $d->orWhere('tags.id',20);
                })->get();

ممنون میشم اگر راهنمایی کنید.


ثبت پرسش جدید

به همدیگه کمک کنیم

به محمدهادی غفوری کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام