Skip to content

Mapping Collections

When working with AutoMapper, you often need to map not just a single object, but a collection of objects. The mapCollection() method is designed specifically for this purpose.

Basic Usage

The mapCollection() method allows you to transform a collection of objects from one type to another:

use AutoMapper\AutoMapper;

$automapper = AutoMapper::create();

$sources = [
    new Source('value1'),
    new Source('value2'),
    new Source('value3'),
];

$targets = $automapper->mapCollection($sources, Target::class);

This will return an array where each element from the source collection is mapped to a new instance of the target class.

Collection Types Support

AutoMapper's mapCollection() supports any iterable

The method will return an array of object that was provided as a target class:

$targetsArray = $automapper->mapCollection($sourcesArray, Target::class);

Using Context

Just like the map() method, mapCollection() also accepts a context parameter for customizing the mapping process:

$context = ['groups' => ['read']];
$targets = $automapper->mapCollection($sources, Target::class, $context);

This context will be applied to each individual object mapping operation.