Команда make:seeder
Команда make:seeder создаёт новый класс сидера в директории database/seeders. Сидеры позволяют заполнять таблицы базы данных тестовыми данными или начальными записями, необходимыми для работы приложения. Команда принимает имя создаваемого класса в качестве аргумента.
Синтаксис
php artisan make:seeder SeederName
Пример
Создадим сидер для наполнения таблицы статей:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class ArticleSeeder extends Seeder
{
public function run(): void
{
DB::table('articles')->insert([
'title' => 'First article',
'content' => 'Content of the first article',
'status' => 'published',
'created_at' => now(),
'updated_at' => now(),
]);
DB::table('articles')->insert([
'title' => 'Second article',
'content' => 'Content of the second article',
'status' => 'draft',
'created_at' => now(),
'updated_at' => now(),
]);
}
}
Пример
Создадим сидер с использованием фабрики для генерации множества записей:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\User;
class UserSeeder extends Seeder
{
public function run(): void
{
User::factory()
->count(10)
->create();
}
}
Результат выполнения кода после запуска сидера:
"Created 10 users successfully"
Пример
Вызов созданного сидера из класса DatabaseSeeder:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call([
UserSeeder::class,
ArticleSeeder::class,
]);
}
}
Пример
Запуск созданного сидера с помощью команды db:seed:
php artisan db:seed --class=ArticleSeeder
Результат выполнения команды:
"Seeding: Database\Seeders\ArticleSeeder"
"Database seeding completed successfully."
Смотрите также
-
команда
make:factory,
которая создаёт фабрику для генерации тестовых данных -
команда
db:seed,
которая запускает выполнение сидеров -
команда
make:migration,
которая создаёт миграцию для изменения структуры таблиц -
команда
migrate,
которая выполняет все миграции и обновляет схему базы данных