Коллекция Flex⚓︎
Коллекция Flex — это упорядоченная карта объектов, которую также можно использовать как список.
Коллекция предоставляет несколько полезных методов, которые можно использовать для визуализации вывода, выборки объектов, фильтрации и сортировки и так далее.
Коллекция Flex расширяет Коллекции Doctrine.
Визуализация коллекции⚓︎
render()⚓︎
render( [layout], [context] ): Block Визуализирует коллекцию.
Параметры:
- layout Название макета (
string) - context Дополнительные переменные, которые можно использовать внутри файла шаблона Twig (
array)
Возвращает:
- Block (
object) HTML-класс блока, содержащего вывод
В twig есть тег {% render %}, который следует использовать вместо прямого вызова метода. Это позволит активам JS/CSS из коллекции работать правильно.
<?php
use Grav\Common\Grav;
use Grav\Framework\ContentBlock\HtmlBlock;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$page = 2;
$limit = 10;
$start = ($page-1)*$limit;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->limit($start, $limit);
/** @var HtmlBlock $block */
$block = $collection->render('cards', ['background' =>'gray', 'color' => 'white']);
}
Манипуляции с коллекциями⚓︎
Все эти методы возвращают измененную копию коллекции. Исходная коллекция остается без изменений.
sort()⚓︎
sort( orderings ): Collection Отсортируйте коллекцию по списку пар свойство: направление (property: direction).
Параметры:
- orderings Пары
property: direction, где направление либоASC, либоDESC(array)
Возвращает:
- Collection (
object) Новый отсортированный экземпляр коллекции
Порядок сортировки по умолчанию может быть установлен для внешнего интерфейса в чертежах Flex-типа.
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->sort(['last_name' => 'ASC', 'first_name' => 'ASC']);
// Collection has now be sorted by last name, first name...
}
limit()⚓︎
limit( start, limit ): Collection Вернуть подмножество коллекции, начиная с start и включая только limit объектов.
Параметры:
- start Начальный индекс начиная с 0 (
int) - limit Максимальное количество объектов (
int)
Возвращает:
- Collection (
object) Новый отфильтрованный экземпляр коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$start = 0;
$limit = 6;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->limit($start, $limit);
// Collection contains only the objects in the current page...
}
filterBy()⚓︎
filterBy( filters ): Collection Фильтрация коллекции по списку пар свойство: значение (property: value).
Параметры:
- filters Пары
property: value, которые используются для фильтрации коллекции (array)
Возвращает:
- Collection (
object) Новый отфильтрованный экземпляр коллекции
Фильтрацию по умолчанию можно установить для внешнего интерфейса в чертежах Flex-типа.
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$start = 0;
$limit = 6;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->filterBy(['published' => true]);
// Collection contains only published objects...
}
reverse()⚓︎
reverse(): Collection Поменять порядок объектов в коллекции на обратный.
Возвращает:
- Collection (
object) Новый перевернутый экземпляр коллекции
Если вы используете sort(), рекомендуется изменить порядок в нем, поскольку это экономит дополнительный шаг.
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$start = 0;
$limit = 6;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->reverse();
// Collection is now in reverse ordering...
}
shuffle()⚓︎
shuffle(): Collection Перемешать объекты в случайном порядке.
Возвращает:
- Collection (
object) Новый случайно упорядоченный экземпляр коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->shuffle()->limit(0,6);
// Collection contains 6 random contacts...
}
select()⚓︎
select( keys ): Collection Выбрать объекты (по их ключам) из коллекции.
Параметры:
- keys Список ключей объекта, используемых для выбора объектов (
array)
Возвращает:
- Collection (
object) Новый экземпляр коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$selected = ['gizwsvkyo5xtms2s', 'gjmva53uoncdo4sb', 'mfzwwtcugv5hkocd', 'k5nfctkeoftwi4zu'];
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->select($selected);
// Collection now contains the 4 selected contacts...
}
unselect()⚓︎
unselect( keys ): Collection Удалять предметы (по их ключам) из коллекции.
Параметры:
- keys Список ключей объектов, используемых для удаления объектов (
array)
Возвращает:
- Collection (
object) Новый экземпляр коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
$ignore = ['gizwsvkyo5xtms2s', 'gjmva53uoncdo4sb', 'mfzwwtcugv5hkocd', 'k5nfctkeoftwi4zu'];
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->unselect($ignore);
// Collection now contains all but 4 ignored contacts...
}
search()⚓︎
search( string, [properties], [options] ): Collection Поиск строки в коллекции.
Параметры:
- string Строка для поиска (
string) - properties Свойства для поиска, если
null(или не указано), используйте значения по умолчанию (arrayилиnull) - options Дополнительные параметры, используемые при поиске (
array)- starts_with:
bool - ends_with:
bool - contains:
bool - case_sensitive:
bool
- starts_with:
Возвращает:
- Collection (
object) Новый отфильтрованный экземпляр коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->search('Jack', ['first_name', 'last_name', 'email'], ['contains' => true]);
// Collection now contains all search results...
}
copy()⚓︎
copy(): Collection Создать копию из коллекции, клонировав все объекты в коллекции.
Возвращает:
- Collection (
object) Новый экземпляр коллекции, теперь с клонированными объектами
Если вы изменяете объекты в своей коллекции, вы всегда должны использовать копии!
{% set contacts = grav.get('flex').collection('contacts') %}
{% set contacts = contacts.shuffle().limit(0, 10) %}
{% set fakes = contacts.copy() %}
{% do fakes.setProperty('first_name', 'JACK') %}
<h2>Fake cards</h2>
{% render fakes layout: 'cards' %}
<h2>Original cards</h2>
{% render contacts layout: 'cards' %}
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
$collection = $collection->search('Jack', ['first_name', 'last_name', 'email'], ['contains' => true]);
// Collection now contains all search results...
}
Итерация по коллекции⚓︎
Коллекции можно перебирать.
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface $object */
foreach ($collection as $object) {
// Do something with the object...
}
}
first()⚓︎
first(): Object | false Устанавливает итератор на первый объект в коллекции и возвращает этот объект.
Возвращает:
- Object (
object) Первый объект falseНикаких предметов в коллекции нет
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface|false $object */
$object = $collection->first();
if ($object) {
// Do something with the object...
}
}
last()⚓︎
last(): Object | false Устанавливает итератор на последний объект в коллекции и возвращает этот объект.
Возвращает:
- Object (
object) Последний объект falseНикаких предметов в коллекции нет
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface|false $object */
$object = $collection->last();
if ($object) {
// Do something with the object...
}
}
next()⚓︎
next(): object | false Перемещает позицию итератора к следующему объекту и возвращает этот элемент.
Возвращает:
- Object (
object) Следующий объект falseБольше никаких элементов в коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface|false $object */
while ($object = $collection->next()) {
// Do something with the object...
}
}
current()⚓︎
current(): object | false Возвращает объект коллекции в текущей позиции итератора.
Возвращает:
- Object (
object) Текущий объект falseБольше никаких элементов в коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
while ($collection->next()) {
/** @var FlexObjectInterface|false $object */
$object = $collection->current();
// Do something with the object...
}
}
key()⚓︎
key(): key | null Возвращает ключ объекта в текущей позиции итератора.
Возвращает:
- key (
string) Ключ объекта nullБольше никаких элементов в коллекции
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
while ($collection->next()) {
$key = $collection->key();
// Do something with the key...
}
}
Получение объекта/ключа⚓︎
Доступ к массиву⚓︎
Коллекции доступны так же, как ассоциативные массивы или карты.
Если объекта с данным ключом нет в коллекции, возвращается null.
{% set contacts = grav.get('flex').collection('contacts') %}
{% set contact = contacts['ki2ts4cbivggmtlj']
{# Do something #}
{% if contact %}
{# Got Bruce Day #}
Email for {{ contact.first_name|e }} {{ contact.last_name|e }} is {{ contact.email|e }}
{% else %}
Oops, contact has been removed!
{% endif %}
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface|null $object */
$object = $collection['ki2ts4cbivggmtlj'];
if ($object) {
// Object exists, do something with it...
}
}
get()⚓︎
get( key ): Object | null Получает объект с указанным ключом.
Параметры:
- key Ключ объекта (
string)
Возвращает:
- Object (
object) nullОбъект с данным ключом отсутствует в коллекции
Альтернатива — Доступ к массиву
{% set contacts = grav.get('flex').collection('contacts') %}
{% set contact = contacts.get('ki2ts4cbivggmtlj')
{# Do something #}
{% if contact %}
{# Got Bruce Day #}
Email for {{ contact.first_name|e }} {{ contact.last_name|e }} is {{ contact.email|e }}
{% else %}
Oops, contact has been removed!
{% endif %}
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface|null $object */
$object = $collection->get('ki2ts4cbivggmtlj');
if ($object) {
// Object exists, do something with it...
}
}
Коллекция как массив⚓︎
getKeys()⚓︎
getKeys(): array Получает все ключи коллекции.
Возвращает:
arrayСписок ключей
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var string[] $keys */
$keys = $collection->getKeys();
$keysList = implode(', ', $keys);
}
GetObjectKeys()⚓︎
GetObjectKeys(): array Псевдоним метода getKeys().
Возвращает:
arrayСписок ключей
getValues()⚓︎
getValues(): array Получает все объекты коллекции.
Преобразует коллекцию в массив. Ключи не сохраняются.
Возвращает:
- Список объектов (
array)
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var FlexObjectInterface[] $objects */
$objects = $collection->getValues();
foreach ($objects as $pos => $object) {
// Do something with the object and its position...
}
}
toArray()⚓︎
toArray(): array Получает собственное представление коллекции в виде массива PHP.
То же, что и getValues(), но с сохранением ключей.
Возвращает:
arrayСписок парkey: Object
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var array<string, FlexObjectInterface> $objects */
$objects = $collection->toArray();
foreach ($objects as $key => $object) {
// Do something with the object and its key...
}
}
slice()⚓︎
slice( offset, length ): array Извлекает из коллекции length элементов, начиная с позиции offset.
Параметры:
- offset Начальное смещение, начиная с 0 (
int) - length Максимальное количество объектов (
int)
Возвращает:
arrayСписок парkey: Object
Этот метод можно использовать для нумерации страниц.
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var array<string, FlexObjectInterface> $objects */
$objects = $collection->slice(10, 5);
// Do something with the object and its key...
}
chunk()⚓︎
chunk( size ): array Разбить коллекцию на части с максимальной вместимостью size объектов в каждой.
Параметры:
- size Размер частей (
int)
Возвращает:
arrayДвумерный список парkey: Object
Этот метод можно использовать для разделения содержимого на строки и столбцы.
{% set contacts = grav.get('flex').collection('contacts') %}
{% set columns = contacts.limit(0, 10).chunk(5) %}
<div>Displaying two columns of 5 emails each:</div>
<div class="columns">
{% for column,list in columns %}
<div class="column">
{% for object in list %}
<div>{{ object.email|e }}</div>
{% endfor %}
</div>
{% endfor %}
</div>
<?php
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/** @var FlexCollectionInterface|null $collection */
$collection = Grav::instance()->get('flex')->getCollection('contacts');
if ($collection) {
/** @var array $columns */
$columns = $collection->limit(0, 10)->chunk(5);
/** @var
int $column
array<string, FlexObjectInterface> $objects
*/
foreach ($columns as $column => $objects) {
// Do something with the objects...
}
}
group()⚓︎
group( property ): array Сгруппировать объекты в коллекции по свойству и вернуть их в виде связанного массива.
Параметры:
- property Имя свойства, которое используется для группировки объектов (
string)
Возвращает:
arrayДвумерный список парkey: Object, где значение свойства является ключом первого уровня
{% set contacts = grav.get('flex').collection('contacts') %}
{% set by_name = contacts.sort({last_name: 'ASC', first_name: 'ASC'}).group('last_name') %}
<div>Displaying contacts grouped by last name:</div>
<div>
{% for last_name,list in by_name %}
{{ last_name|e }}:
<ul>
{% for object in list %}
<li>{{ object.first_name|e }}</li>
{% endfor %}
</ul>
{% endfor %}
</div>
```php <?php
use Grav\Common\Grav; use Grav\Framework\Flex\Interfaces\FlexCollectionInterface; use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
/ @var FlexCollectionInterface|null $collection */ $collection = Grav::instance()->get('flex')->getCollection('contacts'); if ($collection) { / @var array $byName */ $byName = $collection->group('last_name');
/** @var
string $lastName
array<string, FlexObjectInterface> $objects
*/
foreach ($byName as $lastName => $objects) {
// Do something with the objects...
}
}
```
Добавление и удаление объектов⚓︎
add()⚓︎
add( Object ) Добавляет объект в конец коллекции.
Параметры:
- Object Объект для добавления (
object)
remove()⚓︎
remove( key ): Object | null Удаляет элемент с указанным индексом из коллекции.
Параметры:
- key Ключ объекта для удаления (
object)
Возвращает:
- Object Удаленный объект (
object) илиnull, если объекта не существует
removeElement()⚓︎
removeElement( Object ): bool Удаляет указанный объект из коллекции, если он найден.
Параметры:
- Object Объект, подлежащий удалению (
object)
Возвращает:
trueесли объект был в коллекции,falseесли нет
clear()⚓︎
clear() Очищает коллекцию, удаляя все элементы.
Тесты⚓︎
containsKey()⚓︎
containsKey( key ): bool Проверяет, содержит ли коллекция объект с указанным ключом.
Параметры:
- key Ключ для проверки (
string)
Возвращает:
trueесли объект находится в коллекции,falseесли нет
contains()⚓︎
contains( object ): bool Проверяет, содержится ли элемент в коллекции.
Параметры:
- Object Объект для тестирования (
object)
Возвращает:
trueесли объект находится в коллекции,falseесли нет
indexOf()⚓︎
indexOf( object ): string | false Возвращает индекс/ключ данного объекта.
Параметры:
- Object Объект для тестирования (
object)
Возвращает:
stringиндекс/ключ объекта,falseесли объект не был найден
isEmpty()⚓︎
isEmpty(): bool Проверяет, пуста ли коллекция (не содержит объектов).
Возвращает:
trueесли коллекция пуста,falseв противном случае
count()⚓︎
count(): int
Возвращает:
intКоличество объектов в коллекции
Массовые действия для объектов⚓︎
hasProperty()⚓︎
hasProperty( property ): array Возвращает список пар key: boolean независимо от того, имеет ли объект с ключом определенное свойство или нет.
Параметры:
- property Имя свойства (
string)
Возвращает:
arrayпарkey: bool, гдеkey— ключ объекта, аboolлибоtrue, либоfalse.
getProperty()⚓︎
getProperty( property, default ): array Возвращает список key: value для каждого объекта.
Параметры:
- property Имя свойства (
string)
Возвращает:
arrayпарkey: value, гдеkey— ключ объекта, аvalue— значение свойства.
setProperty()⚓︎
setProperty( property, value ): Collection Установить новое значение свойства для каждого объекта в коллекции.
Параметры:
- property Имя свойства (
string) - value Новое значение (
mixed)
Возвращает:
- Collection (
object) Коллекция для цепочки вызовов методов.
Этот метод изменяет экземпляры объектов, общие для всех коллекций, если это не предусмотрено, пожалуйста, скопируйте коллекцию перед использованием этого метода.
defProperty()⚓︎
defProperty( property, default ): Collection Определить значение по умолчанию для свойства для каждого объекта в коллекции.
Параметры:
- property Имя свойства (
string) - default Значение по умолчанию (
mixed)
Возвращает:
- Collection (
object) Коллекция для цепочки вызовов методов.
Этот метод изменяет экземпляры объектов, общие для всех коллекций, если это не предусмотрено, пожалуйста, скопируйте коллекцию перед использованием этого метода.
unsetProperty()⚓︎
unsetProperty( property ): Collection Удалить значение свойства для каждого объекта в коллекции.
Параметры:
- property Имя свойства (
string)
Возвращает:
- Collection (
object) Коллекция для объединения вызовов методов.
Этот метод изменяет экземпляры объектов, общие для всех коллекций, если это не предусмотрено, пожалуйста, скопируйте коллекцию перед использованием этого метода.
call()⚓︎
call( method, arguments): array Вызывает метод для каждого объекта в коллекции. Возвращает результаты каждого вызова.
Параметры:
- method Имя метода (
string) - arguments Список аргументов (
array)
Возвращает:
- Список пар
key: result(array)
Если метод изменяет объект, пожалуйста, скопируйте коллекцию перед использованием этого метода.
getTimestamps()⚓︎
getTimestamps(): array Возвращает список пар key: timestamp для каждого объекта.
Возвращает:
- Список пар
key: timestamp, где timestamp — целое число (array)
getStorageKeys()⚓︎
getStorageKeys(): array Возвращает список пар key: storage_key для каждого объекта.
Возвращает:
- Список пар
key: storage_key(array)
getFlexKeys()⚓︎
getFlexKeys(): array Возвращает список пар key: flex_key для каждого объекта.
Возвращает:
- Список пар
key: flex_key(array)
withKeyField()⚓︎
withKeyField( field ): Collection Return new collection with a different key.
Параметры:
- field Ключ поля (
string)- 'key': Ключ по умолчанию, используемый каталогом
- 'storage_key': Storage layer key
- 'flex_key': Уникальный ключ, который можно использовать, не зная каталога
Возвращает:
- Collection (
object) Коллекция, проиндексированная новым ключом.
Closure Tests (только PHP)⚓︎
exists()⚓︎
exists( Closure ): bool Проверяет существование объекта, удовлетворяющего заданному предикату.
Параметры:
- Closure Метод, используемый для проверки каждого объекта.
Возвращает:
booltrue, если ваша функция обратного вызова возвращаетtrueдля всех объектов.
forAll()⚓︎
forAll( Closure ): bool Проверяет, выполняется ли данный предикат для всех объектов этой коллекции.
Параметры:
- Closure Метод, используемый для проверки каждого объекта.
Возвращает:
booltrue, если ваша функция обратного вызова возвращаетtrueдля всех объектов.
Closure Filtering (PHP only)⚓︎
filter()⚓︎
filter( Closure ): Collection Возвращает все объекты этой коллекции, удовлетворяющие предикату.
Порядок элементов сохраняется.
Параметры:
- Closure Метод, используемый для проверки отдельного объекта.
Возвращает:
- Collection (
object) Новая коллекция со всеми объектами, для которых функция обратного вызова возвращаетtrue.
map()⚓︎
map( Closure ): Collection Применяет данную функцию к каждому объекту в коллекции и возвращает новую коллекцию с объектами, возвращаемыми функцией.
Параметры:
- Closure Метод, используемый для проверки отдельного объекта.
Возвращает:
- Collection (
object) Новая коллекция с объектами, возвращаемыми функцией обратного вызова.
collectionGroup()⚓︎
collectionGroup( property ): Collection[] Сгруппируйте объекты в коллекции по полю и верните их как связанный массив коллекций.
Параметры:
- property (
string) Свойство, используемое для группировки объектов.
Возвращает:
arrayНесколько коллекций в массиве, ключом является значение свойства.
matching()⚓︎
matching( Criteria ): Collection Выбирает все объекты, соответствующие выражению, и возвращает новую коллекцию, содержащую эти объекты.
Параметры:
- Criteria Выражение
Возвращает:
- Collection (
object) Новая коллекция с объектами, соответствующими критериям.
См. документацию Doctrine о Конструкторе выражений и ** Выражениях**.
orderBy()⚓︎
orderBy( array ): Collection Изменить порядок коллекции по списку пар свойство/значение.
Параметры:
array
Возвращает:
- Collection (
object) Новая коллекция с новым порядком.
partition()⚓︎
partition( Closure ): array Разбивает эту коллекцию на две коллекции в соответствии с предикатом.
Ключи сохраняются в полученных коллекциях.
Параметры:
- Closure Метод, используемый для разделения одного объекта. Возвращает
trueилиfalse.
Возвращает:
arrayСекционированные объекты[[a, b], [c, d, e]]