احمد
2 سال پیش توسط احمد مطرح شد
2 پاسخ

بدست آوردن تعداد تکرار یک آیتم در جدول pivot

سلام دوستان من یک جدول order دارم که با جدول products رابطه چند به چند داره. خوب از اونجایی که با ثبت هر سفارش id اون محصولات خریداری شده در جدول واسط ذخیره میشه من میخام تعداد تکرار id محصول در جدول واسط رو بگیرم تا بتونم پرفروش ترین محصولات رو استخراج کنم .همچنین من در جدول واسط یه فیلد quantity دارم که تعداد خریداری داری شده از هر محصول رو ذخیره میکنه.
من از طریق qroupBy در جدول واسط اون محصولاتی که id یکسانی دارند رو بدست آوردم. خوب حالا میخام quantity رو هم بدست بیارم .
جدول واسط (order_product)

سورس:

 $data =  DB::table('order_product')
        ->select('product_id')
        ->get()
        ->groupBy('product_id');

ثبت پرسش جدید
سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 2 سال پیش آپدیت شد
0

با سلام،
با استفاده از متد withCount میتونید اینکار رو انجام بدید که بعنوان آرگومان ورودی به تابع اسم رابطه رو پاس میدید.

$products = Product::withCount('orders')->get();

از تابع orderBy هم احتمالا برای مرتب سازی استفاده میکنید. مثلا:

$products = Product::withCount('orders')->orderBy('orders_count')->get();

در واقع لاراول به هر آبجکت شما یک فیلد به نام relation_count اضافه میکنه که بر اساس اون میتونید مرتب سازی کنید.
مستندات رسمی لاراول
سوالات مشابه:
سوال 1
سوال 2

موفق باشید


احمد
@ahmad316948 2 سال پیش مطرح شد
0

@SobhanDadkhah
یه نگاهی دوباره به سوالم بندازید چون ویرایش کردم.


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

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