Mahmoud Alrashidi نشر 4 أبريل 2021 أرسل تقرير نشر 4 أبريل 2021 أنا أبحث عن إمكانية الحصول على قائمة بالمستخدمين بما في ذلك الحد الأقصى لسعر المقالة لكل مستخدم. إذا فعلت ذلك على هذا النحو ، فهو يعمل: $users=User::withMax('articles','price')->get(); ومع ذلك ، أريد فقط النظر في المقالات النشطة ، لذلك أفكر في القيام بشيء من هذا القبيل ، لكن هذا فشل $users=User::withMax('articles','price')->where('articles.active',true)->get(); عندما أنظر إلى طلب البحث الفرعي الذي تم إنشاؤه ، يتضح سبب فشله: select `users`.* (select max(`articles`.`price`) from `articles` where `user`.`id` = `article`.`user_id`) as `article_max_price` from `users` where `articles`.`active` = 1 يجب أن تكون عبارة where في الاستعلام الفرعي ، وليس في الاستعلام الرئيسي. كيف يمكنني تغيير الكود الخاص بي بحيث تكون عبارة where في طلب البحث الفرعي؟ 1 اقتباس
0 سمير عبود نشر 4 أبريل 2021 أرسل تقرير نشر 4 أبريل 2021 يُمكنك عمل ذلك بإستخدام الطريقة التالية: $users = User::withCount(['articles as article_max_price' => function ($query) { $query->selectRaw('max(price)')->where('active', true); }])->get(); كما يُمكنك أيضاً تمرير مصفوفة للتابع withMax بحيث تستطيع عمل التالي للحصول على ما تريد: $users = User::withMax(['articles' => function ($query) { $query->where('active', true); }], 'price')->get(); 1 اقتباس
السؤال
Mahmoud Alrashidi
أنا أبحث عن إمكانية الحصول على قائمة بالمستخدمين بما في ذلك الحد الأقصى لسعر المقالة لكل مستخدم. إذا فعلت ذلك على هذا النحو ، فهو يعمل:
ومع ذلك ، أريد فقط النظر في المقالات النشطة ، لذلك أفكر في القيام بشيء من هذا القبيل ، لكن هذا فشل
عندما أنظر إلى طلب البحث الفرعي الذي تم إنشاؤه ، يتضح سبب فشله:
يجب أن تكون عبارة where في الاستعلام الفرعي ، وليس في الاستعلام الرئيسي. كيف يمكنني تغيير الكود الخاص بي بحيث تكون عبارة where في طلب البحث الفرعي؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.