⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همه‌چیز به قیمت قبل برمی‌گرده!

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
راکت
حل شده

یک کوئری پیچیده count گرفتن از جدولی که رابطه یک به چند داره

3 پاسخ

درود دوستان - من دو تا جدول دارم که با همدیگه رابطه های یک به چند دارند.
notification
notification_visit
حالا چطور میتونم تعداد جدول دوم(count) ( که n تا رکورد برای جدول اول توشه، منظور در رابطه) رو به عنوان یک ستون اضافه کنم توی کوئریم ؟
شرمنده اگه بد توضیح دادم.

$notification = Notification::
        where('base_type', 'expert')
            ->leftjoin('notification_visits', function ($q) {
            $q->on('notification_visits.notification_id', '=', 'notifications.id');
            $q->whereNull('notification_visits.deleted_at');
        });

این کوئریم میاد کل ستون های جدول دوم رو میاره توی هر رکورد، اما من میخام که

  • تمامی فیلدهای جدول اول رو داشته باشم.
    • از جدول دوم فقط یک فیلد داشته باشم به نام مثلا count که تعداد رکوردهای جدول دوم توشه؟
ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

از متد withCount استفاده کن

$notification = Notification::withCount('notificationVisits')->get();

اینجا notificationVisits میشه نام رابطه hasMany ی که بین مدل ها داری

محسن مهری
محسن مهری
@mohsen.mehri.business2

تخصص: full stack developer php laravel javascript vuejs

@ali.bayat
درود آقای بیات ممنون از پاسختون،
این تابع یعنی میاد دقیقا به اسم جدولم یک فیلد اضافه میکنه که توش یک عدده درسته ؟

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بله دقیقا همین کار رو میکنه

شاید پاسخ شما همین‌جا باشد

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

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