웅변 컬렉션
ㅋㅋ
- Eloquent 반환 모든 여러 결과 집합은
get
메서드를 통해 검색되거나 관계에 액세스하여 얻은 결과를 포함하여IlluminateDatabaseEloquentCollection< /code> 개체의 인스턴스입니다. Eloquent의 컬렉션 객체는 Laravel의 컬렉션 기본 클래스를 상속하므로 Eloquent 모델의 기본 배열을 우아하게 처리할 수 있는 수십 개의 메서드도 자연스럽게 상속합니다.
또한 모든 컬렉션을 반복자로 사용할 수 있으며 간단한 PHP 배열처럼 반복할 수 있습니다. $users = App\User::where('active', 1)->get(); foreach ($users as $user) { echo $user->name; }
그러나 컬렉션은 배열보다 강력하며 더 직관적인 인터페이스 맵/을 통해 연결 가능한 호출을 노출합니다. 감소 및 기타 작업. 예를 들어, 모든 비활성 사용자를 제거하고 나머지 사용자의 이름을 수집해 보겠습니다.$users = App\User::all(); $names = $users->reject(function ($user) { return $user->active === false; })->map(function ($user) { return $user->name; });
{note} 대부분의 Eloquent 컬렉션 메소드는 새로운 Eloquent 컬렉션 인스턴스를 반환하지만
pluck
는 예외입니다. 인스턴스를 반환하는 keys
, zip
, collapse
, Flatten
및 flip
메서드 컬렉션 기본 클래스의 것입니다. 마찬가지로 map
작업이 Eloquent 모델을 포함하지 않는 컬렉션을 반환하는 경우 자동으로 컬렉션 기본 클래스로 변환됩니다. Collection 기본 클래스
모든 Eloquent 개체는 기본 Laravel 컬렉션 개체를 상속하므로 컬렉션 기본 클래스에서 제공하는 모든 강력한 메서드도 상속합니다.
containsStrictcount
crossJoin
dd
diff
diffKeys
dump
each
eachSpre ad
every
Except
filter
first
flatMap
flatten
flip
forget
forPage
get
group
has
implode
intersect
isEmpty
isNotEmpty
keyBy
keys
last
map
mapInto
mapSpread
mapToGroups
mapWithKeys
max
median
merge
min
mode
nth
only
pad
partition
pipe
pluck pop
prepend
pull
push
put
무작위
reduce
reject
reverse
search
shift
shuffle
slice
some
sort
sortBy
sortByDesc
splice
split
sum
take
tap
toArray
toJson
transform
union
unique
uniqueStrict
unless
values
when
where
whereStrict
whereIn
whereInStrict
whereNotIn
whereNotInStrict
zip
Custom Collection
자신만의 확장 메서드 객체에 사용자 정의 Collection
을 사용해야 하는 경우, 모델에서 newCollection
메서드를 재정의할 수 있습니다.
<?php namespace App; use App\CustomCollection; use Illuminate\Database\Eloquent\Model; class User extends Model{ /** * 创建一个新的 Eloquent 集合实例对象。 * * @param array $models * @return \Illuminate\Database\Eloquent\Collection */ public function newCollection(array $models = []) { return new CustomCollection($models); } }
newCollection
메서드를 정의한 후에는 언제든지 반환된 모델의 에서 이를 사용할 수 있습니다. Eloquent >Collection
인스턴스를 사용하여 사용자 정의 컬렉션 인스턴스를 가져옵니다. 애플리케이션의 모든 모델에서 사용자 정의 컬렉션을 사용하려면 모든 모델이 상속받는 모델 기본 클래스의 newCollection
메서드를 재정의해야 합니다. 이 글은 LearnKu.com
웹사이트에 처음 게시되었습니다.