Класс DatabaseSeeder в Laravel
После введения перейдём к практике.
В проекте Laravel уже есть главный
сидер - класс DatabaseSeeder
в файле DatabaseSeeder.php.
Обычно именно его правят первым:
сюда складывают код начального
наполнения базы.
Когда вы запускаете сид без дополнительных параметров, Laravel выполняет именно этот класс. Другие сидеры подключают к нему позже - в отдельных уроках.
Откройте файл и посмотрите
на его устройство. Класс наследует
Seeder - базовый класс
для всех сидеров Laravel.
Главное здесь - метод run.
При посеве данных вызывают
именно его:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
// commands
}
}
?>
Весь код наполнения таблиц пишут
внутри run. Пока метод
пустой - выполнится, но данных
в базу не добавится.
Сидер не вызывают из контроллера или маршрута. Его запускают в терминале из корня проекта:
php artisan db:seed
Laravel найдёт DatabaseSeeder
и вызовет run. В следующих
уроках пропишем в метод вставку
данных и снова выполним эту
команду.
Откройте DatabaseSeeder.php
в редакторе.
Найдите метод run.
Что в нём сейчас?
От какого класса наследуется
DatabaseSeeder?