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

Фабрики моделей в сидерах Laravel

Фабрики часто подключают к сидерам. Так проще наполнить базу большим числом связанных записей через Eloquent, а не через DB::insert. В сидере доступны состояния, sequence, has и коллбэки - так же, как в коде приложения и тестах.

Пример в DatabaseSeeder:

<?php namespace Database\Seeders; use App\Models\User; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { public function run(): void { User::factory()->count(20)->create(); } } ?>

Можно комбинировать фабрики и ручные данные. Сначала создают фиксированного администратора, затем случайных пользователей:

<?php User::factory()->create([ 'name' => 'admin', 'email' => 'admin@site.com', ]); User::factory()->count(19)->create(); ?>

В отдельном сидере для постов:

<?php namespace Database\Seeders; use App\Models\Post; use Illuminate\Database\Seeder; class PostSeeder extends Seeder { public function run(): void { Post::factory()->count(50)->create(); } } ?>

Запуск остается прежним: php artisan db:seed или php artisan db:seed --class=PostSeeder.

Если нужны только случайные строки без модели, в базовом учебнике достаточно Faker в сидере. Фабрики выбирают, когда данные создают через Eloquent и переиспользуют в тестах.

Наполните таблицу постов через фабрику в отдельном сидере.

Создайте одного админа вручную и 10 пользователей через фабрику в DatabaseSeeder.

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