Дисциплины - Ресурсно-компонентное программирование

Основы разработки бэкенда на Laravel - База данных - Фабрики моделей

Для проведения теста иногда приходится заполнить базу данных, причём данные должны выглядеть более-менее как настоящие, а не просто набором букв. Данные можно вводить и в ручную, но это пойдёт, пока их мало. А в противном случае лучше воспользоваться специальным инструментом для заполнения тест данными — фабрикой моделей.

Хоть и при помощи сидов можно создать несколько записей, но фабрика моделей генерирует множество.

Файлы фабрик моделей хранятся в папке database/factories, и там уже есть один готовый файл UserFactory.php — фабрика для модели User. В Laravel 8 вызываемый метод definition() выглядит так:

    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'email' => $this->faker->unique()->safeEmail,
            'email_verified_at' => now(),
            'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'remember_token' => Str::random(10),
        ];
    }

Из сидера фабрику можем вызвать так:

    public function run()
    {
        \App\Models\User::factory(10)->create();
    }

Далее запускаем сидер:

php artisan db:seed

Стоит так же отметить, что запускать фабрики мы можем не только из сидов, но и из других мест приложения. Например, из консоли. Для этого, сперва надо войти в tinker:

php artisan tinker

После полученного приглашения, можно выполнить фабрику:

\App\Models\User::factory(10)->create();

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
20421 БГУИР
30421 БГУИР