가장 인기 있는 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() 메서드는 점 표기법을 사용하여 중첩 값 추출도 지원합니다.
$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()를 사용하세요.:
Laravel 11에서는 pluck()과 select() 모두 컬렉션을 조작하는 유연한 방법을 제공합니다. pluck()는 단일 속성 추출을 단순화하는 반면, select()는 여러 속성을 사용하여 작업해야 할 때 더 많은 제어 기능을 제공합니다. 이 두 가지 방법의 차이점을 알면 데이터 조작 프로세스를 최적화하고 더 깔끔하고 효율적인 코드를 작성할 수 있습니다.
pluck()과 select()를 모두 익히면 Laravel 애플리케이션에서 복잡한 데이터 구조를 쉽게 처리할 수 있습니다. 즐거운 코딩하세요!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3