"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Comprender la diferencia entre pluck() y select() en Laravel 11

Comprender la diferencia entre pluck() y select() en Laravel 11

Publicado el 2024-11-08
Navegar:589

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

Laravel, uno de los frameworks PHP más populares, proporciona una variedad de métodos poderosos para la manipulación de datos. Entre estos, pluck() y select() se utilizan con frecuencia cuando se trata de colecciones. Aunque puedan parecer similares, tienen propósitos diferentes. En este artículo, exploraremos las diferencias entre estos dos métodos, explicaremos cuándo usar cada uno y brindaremos ejemplos prácticos de codificación para demostrar su uso en Laravel 11.

¿Qué es arrancar()?

El método pluck() está diseñado para extraer valores de una única clave en una colección. Es particularmente útil cuando desea recuperar un atributo específico de una colección de matrices u objetos.

Ejemplo de arrancar()

Supongamos que tiene una colección de productos y desea extraer solo los nombres de los productos:

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

Además, puedes usar pluck() para asignar claves personalizadas a la colección resultante:

$plucked = $collection->pluck('name', 'product_id');

$plucked->all();
// Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']

Valores anidados con pluck()

El método pluck() también admite la extracción de valores anidados usando notación de puntos:

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

Manejo de duplicados

Cuando se trata de colecciones que tienen claves duplicadas, pluck() usará el último valor asociado con cada clave:

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

¿Qué es seleccionar()?

El método select() en Laravel es más parecido a la instrucción SELECT de SQL, lo que le permite elegir varias claves de la colección y devolver solo esas claves como una nueva colección.

Ejemplo de seleccionar()

Consideremos una colección de usuarios de los que desea recuperar tanto los nombres como las funciones:

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

Con select(), puedes extraer múltiples atributos de la colección de una sola vez.

Diferencias clave entre arrancar() y seleccionar()

  • Objetivo:

    • pluck() se utiliza para extraer un único atributo o pares clave-valor de una colección.
    • select() se utiliza para recuperar múltiples atributos de cada elemento de la colección, similar a una consulta SQL.
  • Estructura de retorno:

    • pluck() devuelve una matriz plana de valores o una matriz asociativa cuando se proporciona una segunda clave.
    • select() devuelve una colección de matrices que contienen solo las claves especificadas.
  • Uso:

    • Utiliza pluck() cuando necesites una lista de valores de una clave específica.
    • Utilice select() cuando necesite varios campos de cada elemento de la colección.

¿Cuándo utilizar cuál?

  • Usa arrancar() cuando:

    • Necesitas extraer valores de una sola clave.
    • Estás tratando con datos anidados y deseas recuperar atributos anidados específicos.
  • Usar select() cuando:

    • Necesitas recuperar varias claves o atributos.
    • Quieres reestructurar los datos para centrarte en ciertos campos.

Conclusión

En Laravel 11, tanto pluck() como select() ofrecen formas flexibles de manipular colecciones. Mientras que pluck() simplifica la extracción de atributos individuales, select() le brinda más control cuando necesita trabajar con múltiples atributos. Conocer las diferencias entre estos dos métodos le permite optimizar sus procesos de manipulación de datos y escribir código más limpio y eficiente.

Al dominar tanto pluck() como select(), podrás manejar estructuras de datos complejas con facilidad en tus aplicaciones Laravel. ¡Feliz codificación!

Declaración de liberación Este artículo se reproduce en: https://dev.to/asfiaaiman/understanding-the-difference-between-pluck-and-select-in-laravel-11-398i?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3