Генерация коллекций с повторяющимися значениями, например, для тестирования или заполнения данных, часто требует написания циклов. Это может быть громоздко и не очень выразительно.
Статический метод
Collection::times() предлагает более декларативный подход. Он создает новую коллекцию, запуская переданную функцию указанное количество раз. Индекс текущей итерации передается в функцию, что позволяет легко генерировать уникальные значения.use Illuminate\Support\Collection;
// Задача: создать коллекцию из 10 пользователей
// с уникальными именами User 1, User 2 и т.д.
// Традиционный подход с циклом for:
$users = new Collection();
for ($i = 1; $i <= 10; $i++) {
$users->push((object)['name' => 'User ' . $i]);
}
// Подход с методом times():
$users = Collection::times(10, function (int $number) {
return (object)['name' => 'User ' . $number];
});
👉 @web_craft | #laravel
