{{TOC}} {{DOCVER 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15, 5.1=cdc24ba7426c5b11eb4d050706bd78c3ea4913cc 19.06.2016 20:08:01}} == Введение == Все наборы результатов, возвращаемые Eloquent, являются экземплярами объекта %%(t)Illuminate\Database\Eloquent\Collection%%, в том числе результаты, получаемые с помощью метода %%get()%% или доступные через отношения. Объект коллекции Eloquent наследует ((/docs/v5/collections базовую коллекцию)) Laravel. Поэтому он наследует десятки методов, используемых для гибкой работы с базовым набором моделей Eloquent. Конечно же, все коллекции также служат в качестве итераторов, позволяя вам перебирать их в цикле, как будто они простые PHP массивы: %% $users = App\User::where('active', 1)->get(); foreach ($users as $user) { echo $user->name; } %% Тем не менее, коллекции гораздо мощнее, чем массивы и предоставляют различные варианты операций отображения/уменьшения, которые могут быть сцеплены с использованием интуитивно понятного интерфейса. Например, давайте удалим все неактивные модели и возвратим имена для каждого оставшегося пользователя: %% $users = App\User::where('active', 1)->get(); $names = $users->reject(function ($user) { return $user->active === false; }) ->map(function ($user) { return $user->name; }); %% While most Eloquent collection methods return a new instance of an Eloquent collection, the `pluck`, `keys`, `zip`, `collapse`, `flatten` and `flip` methods return a [base collection](/docs/{{version}}/collections) instance. While most Eloquent collection methods return a new instance of an Eloquent collection, the `pluck`, `keys`, `zip`, `collapse`, `flatten` and `flip` methods return a [base collection](/docs/{{version}}/collections) instance. Likewise, if a `map` operation returns a collection that does not contain any Eloquent models, it will be automatically cast to a base collection. %%(DOCNEW 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15) .(alert) Большинство методов для работы с коллекциями Eloquent возвращают новый экземпляр коллекции Eloquent, но методы %%pluck()%%, %%keys()%%, %%zip()%%, %%collapse()%%, %%flatten()%% и %%flip()%% возвращают экземпляр ((//docs/v5/collections базовой коллекции)). Более того, если операция %%map()%% вернёт коллекцию, в которой нет моделей Eloquent, она будет автоматически приведена к базовой коллекции. %% == Доступные методы == === Базовая коллекция === Все Eloquent коллекции наследуют объект базовой ((/docs/v5/collections коллекции Laravel)); поэтому они наследуют все мощные методы, предоставляемые базовым классом коллекции: ((/docs/v5/collections#all all)) ((/docs/v5/collections#avg avg)) ((/docs/v5/collections#chunk chunk)) ((/docs/v5/collections#collapse collapse)) ((/docs/v5/collections#combine combine)) ((/docs/v5/collections#contains contains)) ((/docs/v5/collections#count count)) ((/docs/v5/collections#diff diff)) ((/docs/v5/collections#diffkeys diffkeys)) ((/docs/v5/collections#each each)) ((/docs/v5/collections#every every)) ((/docs/v5/collections#except except)) ((/docs/v5/collections#filter filter)) ((/docs/v5/collections#first first)) ((/docs/v5/collections#flatmapflatmap)) ((/docs/v5/collections#flatten flatten)) ((/docs/v5/collections#flip flip)) ((/docs/v5/collections#forget forget)) ((/docs/v5/collections#forpage forPage)) ((/docs/v5/collections#get get)) ((/docs/v5/collections#groupby groupBy)) ((/docs/v5/collections#has has)) ((/docs/v5/collections#implode implode)) ((/docs/v5/collections#intersect intersect)) ((/docs/v5/collections#isempty isEmpty)) ((/docs/v5/collections#keyby keyBy)) ((/docs/v5/collections#keys keys)) ((/docs/v5/collections#last last)) ((/docs/v5/collections#map map)) ((/docs/v5/collections#max max)) ((/docs/v5/collections#merge merge)) ((/docs/v5/collections#min min)) ((/docs/v5/collections#only only)) ((/docs/v5/collections#pluck pluck)) ((/docs/v5/collections#pop pop)) ((/docs/v5/collections#prepend prepend)) ((/docs/v5/collections#pull pull)) ((/docs/v5/collections#push push)) ((/docs/v5/collections#put put)) ((/docs/v5/collections#random random)) ((/docs/v5/collections#reduce reduce)) ((/docs/v5/collections#reject reject)) ((/docs/v5/collections#reverse reverse)) ((/docs/v5/collections#search search)) ((/docs/v5/collections#shift shift)) ((/docs/v5/collections#shuffle shuffle)) ((/docs/v5/collections#slice slice)) ((/docs/v5/collections#sort sort)) ((/docs/v5/collections#sortby sortBy)) ((/docs/v5/collections#sortbydesc sortByDesc)) ((/docs/v5/collections#splice splice)) ((/docs/v5/collections#sum sum)) ((/docs/v5/collections#take take)) ((/docs/v5/collections#toarray toArray)) ((/docs/v5/collections#tojson toJson)) ((/docs/v5/collections#transform transform)) ((/docs/v5/collections#method-union) ((/docs/v5/collections#unique unique)) ((/docs/v5/collections#values values)) ((/docs/v5/collections#where where)) ((/docs/v5/collections#wherestrict wherestrict)) ((/docs/v5/collections#wherein wherein)) ((/docs/v5/collections#whereinloose whereinloose)) ((/docs/v5/collections#whereloose whereLoose)) ((/docs/v5/collections#zip zip)) == Пользовательские коллекции == Если вам нужно использовать пользовательский объект %%(t)Collection%% со своими собственными методами наследования, вы можете переопределить метод %%newCollection()%% в вашей модели: %%