"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Laravel 11에서 pluck()과 select()의 차이점 이해

Laravel 11에서 pluck()과 select()의 차이점 이해

2024-11-08에 게시됨
검색:244

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

가장 인기 있는 PHP 프레임워크 중 하나인 Laravel은 데이터 조작을 위한 다양하고 강력한 방법을 제공합니다. 그 중 컬렉션을 다룰 때 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']

선택()이란 무엇입니까?

Laravel의 select() 메소드는 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