laravel 5 프로그래밍 컬렉션 Current: 컬렉션 생성 컬렉션 생성 라라벨은 collect() 헬퍼를 통해 컬랙션 객체인 Illuminate\Support\Collection 클래스를 생성할 수 있습니다.생성된 컬렉션 객체는 다양한 메소드를 통해 일관성 있게 다룰 수 있으며 모든 메소드는 체이닝이 가능하므로 연속적으로 메소드를 호출할 수 있습니다. $collection = collect([1, 'apple', '', 'banana', null, 3]) // 1 ->map(function ($name) { //2 return strtoupper($name); }) ->reject(function ($name) { //3 return is_numeric($name); }) ->reject(function ($name) { //4 return empty($name); }); CODE 위 코드의 동작을 순서대로 설명하면 다음과 같습니다.collect() 헬퍼로 입력된 배열을 라라벨 컬렉션으로 만들어서 리턴합니다.map() 메소드는 컬렉션의 모든 요소에 대해 클로저를 호출하므로 새로 생성된 컬렉션의 요소들은 대문자로 변환이 됩니다.reject() 는 컬렉션의 요소에 대해 주어진 클로저로 필터링을 하는 메소드입니다. 그러므로 숫자인 요소는 모두 제외되게 됩니다.reject() 는 empty() 이 참인 요소들을 배제하게 되므로 비어있거나 널인 요소들을 배제하게 됩니다.독자들도 어떤 결과가 나올지 코드를 보고 예상을 해 봅시다.이제 위 코드의 결과를 확인해 보기 위해 암시적 컨트롤러(Implicit Controllers) 에서 만든 ImplicitController 에 getCollection() 메서드를 추가하고 코드를 붙여 넣은 후에 생성된 컬렉션을 dump()로 출력하도록 구현하고 웹 브라우저로 http://homestead.app/impl/collection 에 연결해 봅시다. class ImplicitController extends Controller { public function getCollection() { // 위 코드 추가 return dump($collection); } CODE dump() 헬퍼는 var_dump() 와 동일한 역할을 수행하지만 지정된 변수를 보기 좋게 포맷팅해서 출력해주며 dd() 는 dump and die 의 약자로 출력하고 코드 실행을 중지하는 메소드로 디버깅시에 유용하게 사용할 수 있습니다. 결과를 보면 예상처럼 2개의 요소를 가진 컬렉션이 생성된 것을 알 수 있으며 최초의 collect() 메소드로 생성된 컬렉션은 6개이지만 reject() 로 필터링하여 키 값이 1과 3인 것을 알 수 있습니다.이처럼 라라벨은 배열을 컬렉션을 통해 손 쉽게 다룰수 있으며 일관성있게 모든 배열 데이타는 key/value 쌍으로 다루고 있습니다. 컬렉션 생성 결과https://laravel.com/docs/5.5/collections ×