"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم الفرق بين pluck() وselect() في Laravel 11

فهم الفرق بين pluck() وselect() في Laravel 11

تم النشر بتاريخ 2024-11-08
تصفح:461

Understanding the Difference Between pluck() and select() in Laravel 11

يوفر 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() لاستخراج سمة واحدة أو أزواج قيمة المفتاح من مجموعة.
    • يتم استخدام تحديد () لاسترداد سمات متعددة من كل عنصر في المجموعة، على غرار استعلام SQL.
  • هيكل الإرجاع:

    • تقوم pluck() بإرجاع مصفوفة مسطحة من القيم أو مصفوفة ترابطية عند توفير مفتاح ثانٍ.
    • تقوم عملية التحديد () بإرجاع مجموعة من المصفوفات التي تحتوي على المفاتيح المحددة فقط.
  • الاستخدام:

    • استخدم pluck() عندما تحتاج إلى قائمة القيم من مفتاح معين.
    • استخدم تحديد () عندما تحتاج إلى حقول متعددة من كل عنصر في المجموعة.

متى تستخدم أي؟

  • استخدم pluck() عندما:

    • تحتاج إلى استخراج القيم من مفتاح واحد.
    • أنت تتعامل مع بيانات متداخلة وتريد استرداد سمات متداخلة محددة.
  • استخدم التحديد () عندما:

    • تحتاج إلى استرداد مفاتيح أو سمات متعددة.
    • تريد إعادة هيكلة البيانات للتركيز على مجالات معينة.

خاتمة

في Laravel 11، يقدم كل من pluck() وselect() طرقًا مرنة للتعامل مع المجموعات. في حين أن pluck() يبسط استخراج سمات فردية، فإن Select() يمنحك المزيد من التحكم عندما تحتاج إلى العمل مع سمات متعددة. تتيح لك معرفة الاختلافات بين هاتين الطريقتين تحسين عمليات معالجة البيانات وكتابة تعليمات برمجية أكثر وضوحًا وكفاءة.

من خلال إتقان كل من pluck() وselect()، يمكنك التعامل مع هياكل البيانات المعقدة بسهولة في تطبيقات Laravel الخاصة بك. برمجة سعيدة!

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/asfiaaiman/understanding-the-difference-between-pluck-and-select-in-laravel-11-398i?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3