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.
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.
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']
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']]
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']
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.
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.
Objetivo:
Estructura de retorno:
Uso:
Usa arrancar() cuando:
Usar select() cuando:
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!
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