Mahmoud Alrashidi نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 (معدل) لدي في قاعدة البيانات الجداول التالية: hackathons id name ... hackathon_user hackathon_id user_id users id name و لدي العلاقة التالية في النموذج Hackathon : public function participants() { return $this->belongsToMany(User::class); } أريد جلب سجلات الجدول hackathons مرتبة وفق عدد المشاركين كيف يُمكن ذلك؟ تم التعديل في 22 مارس 2021 بواسطة كمال محمودي اقتباس
0 سمير عبود نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 بإمكانك إستخدام التابع withCount لتحقيق ذلك: Hackathon::withCount('participants') ->orderBy('participants_count', 'desc') ->paginate(10); // or ->take(10) إذا كنت تريد جلب العشر الأوائل في الترتيب كما يُمكنك إستخدام join أيضاً كما هو موضح أدناه: $hackathons = Hackathon::leftJoin('hackathon_user','hackathons.id','=','hackathon_user.hackathon_id') ->selectRaw('hackathons.*, count(hackathon_user.hackathon_id) AS `participants_count`') ->groupBy('hackathons.id') ->orderBy('participants_count','DESC') ->paginate(10); 1 اقتباس
السؤال
Mahmoud Alrashidi
لدي في قاعدة البيانات الجداول التالية:
hackathons id name ... hackathon_user hackathon_id user_id users id nameو لدي العلاقة التالية في النموذج Hackathon :
أريد جلب سجلات الجدول hackathons مرتبة وفق عدد المشاركين كيف يُمكن ذلك؟
تم التعديل في بواسطة كمال محمودي1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.