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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.