Laravel, um dos frameworks PHP mais populares, fornece uma gama de métodos poderosos para manipulação de dados. Entre eles, pluck() e select() são frequentemente usados ao lidar com coleções. Embora possam parecer semelhantes, eles servem a propósitos diferentes. Neste artigo, exploraremos as diferenças entre esses dois métodos, explicaremos quando usar cada um e forneceremos exemplos práticos de codificação para demonstrar seu uso no Laravel 11.
O método pluck() foi projetado para extrair valores de uma única chave em uma coleção. É particularmente útil quando você deseja recuperar um atributo específico de uma coleção de arrays ou objetos.
Digamos que você tenha uma coleção de produtos e queira extrair apenas os nomes dos produtos:
$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']
Além disso, você pode usar pluck() para atribuir chaves personalizadas à coleção resultante:
$plucked = $collection->pluck('name', 'product_id'); $plucked->all(); // Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']
O método pluck() também suporta a extração de valores aninhados usando notação de ponto:
$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']]
Ao lidar com coleções que possuem chaves duplicadas, pluck() usará o último valor associado a cada chave:
$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']
O método select() no Laravel é mais parecido com a instrução SELECT do SQL, permitindo que você escolha várias chaves da coleção e retorne apenas essas chaves como uma nova coleção.
Vamos considerar uma coleção de usuários onde você deseja recuperar os nomes e as funções:
$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'], // ]
Com select(), você pode extrair vários atributos da coleção de uma só vez.
Propósito:
Estrutura de retorno:
Uso:
Use pluck() quando:
Use select() quando:
No Laravel 11, pluck() e select() oferecem maneiras flexíveis de manipular coleções. Enquanto pluck() simplifica a extração de atributos únicos, select() oferece mais controle quando você precisa trabalhar com vários atributos. Conhecer as diferenças entre esses dois métodos permite otimizar seus processos de manipulação de dados e escrever códigos mais limpos e eficientes.
Ao dominar pluck() e select(), você pode lidar com estruturas de dados complexas com facilidade em suas aplicações Laravel. Boa codificação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3