кодесурса
«Laravel

Laravel (5.7) Красноречивые коллекции

script1adsense2code
script1adsense3code

Красноречивые Коллекции

В этом уроке мы проведем вас через Eloquent Collections Laravel, этот урок будет разделен на Введение, Доступные методы и затем пользовательские коллекции.

Вступление

В laravel все множественные результирующие наборы, возвращаемые Eloquent, являются экземплярами объекта IlluminateDatabaseEloquentCollection, это включает в себя результаты, которые извлекаются с помощью метода get, или к ним обращаются через отношение. Объект коллекции Eloquent расширяет базовую коллекцию Laravel, следовательно, он, естественно, наследует десятки методов, которые свободно работают с базовым массивом моделей Eloquent.

Все коллекции также служат итераторами, позволяя вам зацикливать их, как если бы они были простыми массивами PHP:

$users = App\User::where('active', 1)->get();
foreach ($users as $user) {
    echo $user->name;
}

Предупреждение. Хотя большинство методов коллекции Eloquent возвращают новый экземпляр коллекции Eloquent, все методы pluck, keys, zip, collapse, flatten и flip возвращают базовый экземпляр коллекции. Аналогично, если у нас есть случай, когда операция карты возвращает коллекцию, которая не содержит моделей Eloquent, операция карты будет автоматически приведена к базовой коллекции.

Доступные методы

Базовая коллекция

Все коллекции Eloquent расширяют базовый объект коллекции Laravel; следовательно, они будут наследовать все мощные методы, предоставляемые базовым классом коллекции, к которым относятся эти методы:

 все 
средний
средний
ломоть
коллапс
скомбинировать
CONCAT
содержит
containsStrict
подсчитывать
Crossjoin
дд
разница
diffKeys
свалка
каждый
eachSpread
каждый
Кроме
фильтр
первый
flatMap
расплющить
кувырок
забывать
forPage
получить
группа по
имеет
взрываться
пересекаться
пустой
isNotEmpty
keyBy
ключи
прошлой
карта
mapInto
mapSpread
mapToGroups
mapWithKeys
Максимум
медиана
сливаться
мин
Режим
энный
только
подушечка
раздел
труба
срывать
поп
перед именем
вытащить
От себя
положил
случайный
уменьшить
отклонять
задний ход
поиск
сдвиг
шарканье
ломтик
немного
Сортировать
Сортировать по
sortByDesc
сращивание
Трещина
сумма
принимать
нажмите
ToArray
toJson
преобразование
союз
уникальный
uniqueStrict
если
ценности
когда
где
whereStrict
в которой
whereInStrict
whereNotIn
whereNotInStrict
застежка-молния 

Собственные коллекции

В некоторых случаях вам нужно использовать пользовательский объект Collection со своими собственными методами расширения, в таких случаях вы можете переопределить метод newCollection в вашей модели:

<?php
namespace App;
use App\CustomCollection;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
    /**
     * this will create a new Eloquent Collection instance.
     *
     * @param  array  $models
     * @return \Illuminate\Database\Eloquent\Collection
     */
    public function newCollection(array $models = [])
    {
        return new CustomCollection($models);
    }
}

После того, как вы успешно определили метод newCollection, вы получите экземпляр вашей пользовательской коллекции каждый раз, когда Eloquent возвращает экземпляр Collection этой модели. Если вы хотите использовать пользовательскую коллекцию для каждой модели вашего приложения, вам следует переопределить метод newCollection в классе базовой модели, который расширяется каждой моделью в вашем приложении.

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code