يوفر Laravel، أحد أشهر أطر عمل PHP، مجموعة من الأساليب القوية لمعالجة البيانات. من بينها، يتم استخدام pluck() وselect() بشكل متكرر عند التعامل مع المجموعات. على الرغم من أنها قد تبدو متشابهة، إلا أنها تخدم أغراضًا مختلفة. في هذه المقالة، سنستكشف الاختلافات بين هاتين الطريقتين، ونشرح متى نستخدم كل منهما، ونقدم أمثلة عملية على البرمجة لتوضيح استخدامها في Laravel 11.
تم تصميم طريقة pluck() لاستخراج القيم من مفتاح واحد في المجموعة. إنه مفيد بشكل خاص عندما تريد استرداد سمة معينة من مجموعة من المصفوفات أو الكائنات.
لنفترض أن لديك مجموعة من المنتجات، وتريد استخراج أسماء المنتجات فقط:
$collection = collect([ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'], ]); // Pluck only the names of the products $plucked = $collection->pluck('name'); $plucked->all(); // Output: ['Desk', 'Chair']
بالإضافة إلى ذلك، يمكنك استخدام pluck() لتعيين مفاتيح مخصصة للمجموعة الناتجة:
$plucked = $collection->pluck('name', 'product_id'); $plucked->all(); // Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']
يدعم أسلوب pluck() أيضًا استخراج القيم المتداخلة باستخدام التدوين النقطي:
$collection = collect([ [ 'name' => 'Laracon', 'speakers' => [ 'first_day' => ['Rosa', 'Judith'], ], ], [ 'name' => 'VueConf', 'speakers' => [ 'first_day' => ['Abigail', 'Joey'], ], ], ]); $plucked = $collection->pluck('speakers.first_day'); $plucked->all(); // Output: [['Rosa', 'Judith'], ['Abigail', 'Joey']]
عند التعامل مع المجموعات التي تحتوي على مفاتيح مكررة، ستستخدم pluck() القيمة الأخيرة المرتبطة بكل مفتاح:
$collection = collect([ ['brand' => 'Tesla', 'color' => 'red'], ['brand' => 'Pagani', 'color' => 'white'], ['brand' => 'Tesla', 'color' => 'black'], ['brand' => 'Pagani', 'color' => 'orange'], ]); $plucked = $collection->pluck('color', 'brand'); $plucked->all(); // Output: ['Tesla' => 'black', 'Pagani' => 'orange']
طريقة التحديد () في Laravel أقرب إلى عبارة SELECT الخاصة بـ SQL، مما يسمح لك باختيار مفاتيح متعددة من المجموعة وإرجاع تلك المفاتيح فقط كمجموعة جديدة.
لنفكر في مجموعة من المستخدمين حيث تريد استرداد الأسماء والأدوار:
$users = collect([ ['name' => 'Taylor Otwell', 'role' => 'Developer', 'status' => 'active'], ['name' => 'Victoria Faith', 'role' => 'Researcher', 'status' => 'active'], ]); $selectedUsers = $users->select(['name', 'role']); $selectedUsers->all(); // Output: [ // ['name' => 'Taylor Otwell', 'role' => 'Developer'], // ['name' => 'Victoria Faith', 'role' => 'Researcher'], // ]
باستخدام التحديد ()، يمكنك سحب سمات متعددة من المجموعة دفعة واحدة.
غاية:
هيكل الإرجاع:
الاستخدام:
استخدم pluck() عندما:
استخدم التحديد () عندما:
في Laravel 11، يقدم كل من pluck() وselect() طرقًا مرنة للتعامل مع المجموعات. في حين أن pluck() يبسط استخراج سمات فردية، فإن Select() يمنحك المزيد من التحكم عندما تحتاج إلى العمل مع سمات متعددة. تتيح لك معرفة الاختلافات بين هاتين الطريقتين تحسين عمليات معالجة البيانات وكتابة تعليمات برمجية أكثر وضوحًا وكفاءة.
من خلال إتقان كل من pluck() وselect()، يمكنك التعامل مع هياكل البيانات المعقدة بسهولة في تطبيقات Laravel الخاصة بك. برمجة سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3