«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Понимание разницы между pluck() и select() в Laravel 11

Понимание разницы между pluck() и select() в Laravel 11

Опубликовано 8 ноября 2024 г.
Просматривать:843

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()

Метод 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']

Что такое выбор()?

Метод select() в Laravel больше похож на оператор SQL SELECT, позволяющий выбирать несколько ключей из коллекции и возвращать только эти ключи в качестве новой коллекции.

Пример выбора()

Давайте рассмотрим группу пользователей, из которых вы хотите получить как имена, так и роли:

$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'],
// ]

С помощью select() вы можете извлечь несколько атрибутов из коллекции за один раз.

Ключевые различия между pluck() и select()

  • Цель:

    • pluck() используется для извлечения одного атрибута или пары ключ-значение из коллекции.
    • select() используется для получения нескольких атрибутов из каждого элемента коллекции, аналогично SQL-запросу.
  • Структура возврата:

    • pluck() возвращает плоский массив значений или ассоциативный массив, если указан второй ключ.
    • select() возвращает коллекцию массивов, содержащую только указанные ключи.
  • Использование:

    • Используйте pluck(), если вам нужен список значений из определенного ключа.
    • Используйте select(), если вам нужно несколько полей из каждого элемента коллекции.

Когда использовать какой?

  • Используйте pluck(), когда :

    • Вам необходимо извлечь значения из одного ключа.
    • Вы имеете дело с вложенными данными и хотите получить определенные вложенные атрибуты.
  • Используйте select(), когда:

    • Вам необходимо получить несколько ключей или атрибутов.
    • Вы хотите реструктурировать данные, чтобы сосредоточиться на определенных полях.

Заключение

В 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