Collections عبارة عن wrapper قوي وسلس حول المصفوفات، يوفر العشرات من الطرق القابلة للربط للعمل مع البيانات بأناقة (map، filter، reduce، groupBy، إلخ). يتم إرجاع نتائج استعلامات Eloquent كـ Collections، لذا تستخدمها بشكل مستمر.
Collections عبارة عن wrapper قوي وسلس حول المصفوفات، يوفر العشرات من الطرق القابلة للربط للعمل مع البيانات بأناقة (map، filter، reduce، groupBy، إلخ). يتم إرجاع نتائج استعلامات Eloquent كـ Collections، لذا تستخدمها بشكل مستمر.
$collection = collect([1, 2, 3, 4, 5]);
$result = $collection
->filter(fn($n) => $n % 2 === 0) // [2, 4]
->map(fn($n) => $n * 10) // [20, 40]
->values(); // re-index
$collection->sum(); // 15
$collection->avg(); // 3
$collection->max(); // 5
تقوم Collection بلف مصفوفة وتوفر واجهة برمجية سلسة وقابلة للربط — أكثر تعبيراً بكثير من دوال المصفوفات اليدوية، وقابلة للربط لإنشاء خطوط معالجة بيانات نظيفة.
$users = User::all(); // returns a Collection of User models
$users->where('active', true) // filter
->sortBy('name')
->map(fn($u) => $u->name)
->take(10);
$users->pluck('email'); // extract one field → a collection of emails
$users->groupBy('role'); // group by a field → role => [users]
$users->keyBy('id'); // index by id
نظراً لأن Eloquent يرجع Collections، يمكنك تحويل نتائج الاستعلام بأناقة في PHP — لكن بالنسبة للمجموعات البيانات الكبيرة، يفضل استخدام استعلامات قاعدة البيانات على جلب كل شيء والتصفية في PHP.
map, filter, reduce, each transform/iterate
pluck, keyBy, groupBy, partition restructure
sum, avg, min, max, count aggregate
sort, sortBy, reverse, unique order/dedup
first, last, take, skip, chunk slice
contains, every, some, where query
implode, flatten, collapse, merge combine
Collections هي ميزة Laravel مهمة وموجودة في كل مكان — فهي تجعل العمل مع المصفوفات والبيانات أنيقاً وتعبيرياً، وبما أن نتائج استعلامات Eloquent هي Collections، فإنك تستخدمها باستمرار عند التعامل مع بيانات قاعدة البيانات، مما يجعلها معرفة يومية وأساسية.
القيمة الأساسية هي واجهة برمجية سلسة وقابلة للربط: بدلاً من معالجة المصفوفات الإمرية المطولة والمعقدة، تسمح لك Collections بالتعبير عن تحويلات البيانات (التصفية والتعيين والتجميع والتجميع والفرز) كسلاسل طرق مقروءة وقابلة للتركيب — وهي فائدة إنتاجية وقابلية قراءة كبيرة تجسد أسلوب Laravel الأنيق.
إن فهم مجموعة الطرق الغنية (map/filter/reduce للتحويل، pluck/groupBy/keyBy لإعادة الهيكلة، طرق التجميع والفرز) يتيح لك معالجة البيانات بنظافة وهو ضروري للعمل بفعالية مع نتائج Eloquent (التي ترجع Collections التي تقوم بتحويلها بعد ذلك).
إن معرفة Collections — واجهتها البرمجية السلسة، وسعة الطرق المتاحة، وأن Eloquent تستخدمها — أمر أساسي للتطوير الإنتاجي في Laravel، لأن معالجة البيانات مستمرة والتحصيل هو كيفية جعل Laravel أنيقة. (تحذير عملي واحد مهم: لتصفية أو فرز مجموعات البيانات الكبيرة، يفضل إجراء العمل في استعلام قاعدة البيانات بدلاً من جلب جميع السجلات إلى Collection ومعالجتها في PHP — Collections مخصصة لمعالجة البيانات في الذاكرة، وليست بديلاً للاستعلامات الفعالة.) الطلاقة مع Collections هي علامة مميزة للكود Laravel المألوف والإنتاجي.