"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Compreendendo a diferença entre pluck() e select() no Laravel 11

Compreendendo a diferença entre pluck() e select() no Laravel 11

Publicado em 2024-11-08
Navegar:118

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

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 que é arrancar()?

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.

Exemplo de arrancar()

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

Valores aninhados com pluck()

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

Tratamento de duplicatas

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 que é select()?

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.

Exemplo de seleçã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.

Principais diferenças entre pluck() e select()

  • Propósito:

    • pluck() é usado para extrair um único atributo ou pares de valores-chave de uma coleção.
    • select() é usado para recuperar vários atributos de cada item da coleção, semelhante a uma consulta SQL.
  • Estrutura de retorno:

    • pluck() retorna uma matriz simples de valores ou uma matriz associativa quando uma segunda chave é fornecida.
    • select() retorna uma coleção de arrays contendo apenas as chaves especificadas.
  • Uso:

    • Use pluck() quando precisar de uma lista de valores de uma chave específica.
    • Use select() quando precisar de vários campos de cada elemento da coleção.

Quando usar qual?

  • Use pluck() quando:

    • Você precisa extrair valores de uma única chave.
    • Você está lidando com dados aninhados e deseja recuperar atributos aninhados específicos.
  • Use select() quando:

    • Você precisa recuperar várias chaves ou atributos.
    • Você deseja reestruturar os dados para focar em determinados campos.

Conclusão

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!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/asfiaaiman/understanding-the-difference-between-pluck-and-select-in-laravel-11-398i?1 Se houver alguma violação, entre em contato com study_golang@163 .com para excluí-lo
Tutorial mais recente Mais>

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