Общий вызов отдельных сидеров в Laravel
Удобно разбивать сидеры по отдельным файлам,
но не очень удобно вызывать каждый сидер
по отдельности. Для упрощения можно
в DatabaseSeeder прописать автоматический
вызов всех отдельных сидеров.
Пусть, к примеру, у нас есть два отдельных
сидера: PostSeeder и CommentSeeder.
Вызовем их в основном сидере через метод
call:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call([
PostSeeder::class,
CommentSeeder::class,
]);
}
}
?>
Так как все сидеры лежат в одном
пространстве имен Database\Seeders,
отдельно подключать их через use
не обязательно.
Теперь можно запустить все прописанные сидеры одной командой:
php artisan db:seed
Пропишите в основном сидере вызов сидера для юзеров, сидера для городов и сидера для стран.
Запустите db:seed и убедитесь,
что отработали все перечисленные сидеры.