
استخدام إيلوكوينت لعمل الإحصائيات والتجمعات بسهولة في Laravel
إيلوكوينت: تسهيلات عمليات التجميع والإحصائيات على البيانات
إيلوكوينت مش بس بتسهل عليك التعامل مع قواعد البيانات، كمان بتوفر لك طرق جاهزة لعمل إحصائيات وتجميعات على البيانات المرتبطة. يعني بدلاً من كتابة كود معقد وطويل لحساب مجموع الأصوات أو عدد التعليقات، يمكنك ببساطة استخدام دوال مثل: withSum
، withMin
، withMax
، و withAvg
.
مثال توضيحي:
لنأخذ مثالًا عمليًا: إذا كان لديك موديل البوستات وتريد حساب مجموع الأصوات في التعليقات الخاصة بكل بوست. باستخدام إيلوكوينت، يمكنك كتابة الكود التالي:
use App\Models\Post; $posts = Post::withSum('comments', 'votes')->get(); foreach ($posts as $post) { echo $post->comments_sum_votes; }
بسيط، أليس كذلك؟ الآن، كل بوست قمت بجلبه سيكون له خاصية جديدة هي comments_sum_votes
، والتي ستعطيك مجموع الأصوات من التعليقات مباشرة.
تغيير اسم النتيجة:
إذا كنت ترغب في إعطاء هذه النتيجة اسمًا مختلفًا مثل "إجمالي التعليقات"، يمكنك استخدام alias بسهولة:
$posts = Post::withSum('comments as total_comments', 'votes')->get(); foreach ($posts as $post) { echo $post->total_comments; }
استخدام loadSum
لإجراء التجميعات بعد الاسترجاع:
إذا كان لديك موديل قد تم جلبه بالفعل وتريد إجراء تجمعات إضافية عليه، يمكنك استخدام loadSum
، كما في المثال التالي:
$post = Post::first(); $post->loadSum('comments', 'votes');
ملاحظات هامة عند استخدام select
:
إذا كنت تستخدم دالة select
لاختيار أعمدة معينة، تأكد من استدعاء دوال التجميع مثل withExists
بعد دالة select
، على النحو التالي:
$posts = Post::select(['title', 'body'])->withExists('comments')->get();
بهذه الطريقة، تضمن أنك تحصل على البيانات المطلوبة مع العمليات الحسابية على العلاقات المرتبطة.
الخلاصة:
إيلوكوينت توفر لك طرقًا بسيطة وسهلة لحساب المجموعات والإحصائيات على البيانات المرتبطة، مما يوفر عليك كتابة أكواد معقدة ويجعل كودك أنظف وأكثر سهولة في التعامل مع البيانات.