Отдельные классы сидеров в Laravel
Мы уже умеем заполнять таблицы
через DatabaseSeeder -
вручную или массовой вставкой.
Не обязательно держать весь код
в одном классе. Сидеры можно
разнести по разным файлам -
удобнее, когда таблиц много.
Сделаем, к примеру, сидер для заполнения таблицы с постами. Создадим его через Artisan:
php artisan make:seeder PostSeeder
В папке database/seeders/ появится
файл. Пропишем в методе run
вставку данных:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class PostSeeder extends Seeder
{
public function run(): void
{
DB::table('posts')->insert([
'title' => Str::random(10),
'slug' => Str::random(10),
'text' => Str::random(50),
]);
}
}
?>
Запустим его отдельно следующей командой:
php artisan db:seed --class=PostSeeder
Сделайте отдельный сидер для
таблицы с юзерами через
make:seeder и запустите его.
Сделайте отдельный сидер для таблицы с городами.
Сделайте отдельный сидер для таблицы со странами.