РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrSpFcSq 128 of 210 menu

Последовательности в фабриках Laravel

При count и одном массиве все записи получают одинаковые переопределенные поля. Чтобы у каждой строки были свои значения, используют sequence.

Пример - три пользователя с разными именами:

<?php use App\Models\User; User::factory() ->count(3) ->sequence( ['name' => 'Alex'], ['name' => 'Maria'], ['name' => 'Ivan'], ) ->create(); ?>

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

Последовательность можно задать через замыкание - удобно для уникальных email:

<?php User::factory() ->count(5) ->sequence(fn ($sequence) => [ 'email' => 'user' . $sequence->index . '@site.com', ]) ->create(); ?>

index начинается с нуля. Получатся адреса user0@site.com, user1@site.com и так далее.

В definition для уникальных полей по-прежнему полезен fake()->unique() - как в разделе unique Faker. sequence нужен, когда важны конкретные или предсказуемые наборы данных.

Создайте 4 поста с разными заголовками через sequence.

Сгенерируйте email вида test1@site.com, test2@site.com через замыкание в sequence.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить