Junior: питання на співбесіді з теми «Seeder»
Найпопулярніші питання з реальних Laravel/PHP співбесід для всіх рівнів
Всі теми
Artisan
Authentication
Blade
Collections
Database
Debugging
Eloquent
Enums
Files
HTTP та Request
Mail
Middleware
MVC та архітектура
Pagination
Routing
Seeder
Testing
Архітектура
Безпека
Валідація
Конфігурація
Локалізація
Міграції
Сесії
1 питання
Seeding - це процес наповнення бази даних початковими або тестовими даними. Laravel робить це через класи-сидери, які лежать у директорії database/seeders. Зручно для довідників (країни, ролі), демо-контенту та локальної розробки чи тестів.
Створити сидер:
php artisan make:seeder PostSeeder
Логіку вставки описують у методі run() - або через фабрики, або напряму через Query Builder:
class PostSeeder extends Seeder
{
public function run(): void
{
Post::factory()->count(50)->create(); // через фабрику
// або напряму
DB::table('roles')->insert([
['name' => 'admin'],
['name' => 'user'],
]);
}
}
Реєстрація: сидери викликають у DatabaseSeeder::run(), щоб запускати їх разом:
public function run(): void
{
$this->call([RoleSeeder::class, PostSeeder::class]);
}
Запуск:
php artisan db:seed- виконуєDatabaseSeeder.php artisan db:seed --class=PostSeeder- конкретний сидер.php artisan migrate:fresh --seed- перестворити БД і засіяти.