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

Класс Seeder

Класс Seeder в Laravel предназначен для наполнения базы данных тестовыми или начальными данными. Все сидеры наследуются от базового класса Seeder и должны реализовывать метод run, в котором описывается логика вставки данных. Сидеры удобно использовать для создания демонстрационных данных, начальных настроек или для наполнения базы перед тестированием.

Синтаксис

<?php namespace DatabaseSeeders; use IlluminateDatabaseSeeder; use AppModelsArticle; use IlluminateSupportFacadesDB; class ArticleSeeder extends Seeder { public function run(): void { // логика заполнения } }

Пример

Давайте создадим сидер для наполнения таблицы articles тестовыми записями:

<?php namespace DatabaseSeeders; use IlluminateDatabaseSeeder; use AppModelsArticle; use IlluminateSupportStr; class ArticleSeeder extends Seeder { public function run(): void { for ($i = 1; $i <= 5; $i++) { Article::create([ 'title' => 'Article ' . $i, 'content' => 'Content for article ' . $i, 'status' => 'published', 'views' => $i * 10, ]); } } }

Для выполнения сидера используйте команду:

php artisan db:seed --class=ArticleSeeder

Пример

Использование фабрик для генерации случайных данных в сидере:

<?php namespace DatabaseSeeders; use IlluminateDatabaseSeeder; use AppModelsArticle; use AppModelsUser; use IlluminateSupportStr; class ArticleSeeder extends Seeder { public function run(): void { $users = User::all(); foreach ($users as $user) { Article::factory() ->count(3) ->for($user) ->create(); } } }

Пример

Вызов нескольких сидеров из главного сидера базы данных:

<?php namespace DatabaseSeeders; use IlluminateDatabaseSeeder; class DatabaseSeeder extends Seeder { public function run(): void { $this->call([ UserSeeder::class, CategorySeeder::class, ArticleSeeder::class, ]); } }

Запуск всех сидеров выполняется командой:

php artisan db:seed

Смотрите также

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