"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 라라벨 팩토리와 시더 생성을 위한 빠른 가이드

라라벨 팩토리와 시더 생성을 위한 빠른 가이드

2024-07-29에 게시됨
검색:457

A Quick Guide to Creating Laravel Factories and Seeders

나는 연습문제, 취미 프로젝트, 실제 애플리케이션 등 내 프로젝트를 위한 새로운 팩토리와 시더를 만들어야 할 때마다 종종 Laravel 문서로 돌아가곤 합니다( 매번 같은 행동을 하는 것이 지루합니다.) 이 프로세스를 쉽게 만들기 위해 필요할 때마다 참조할 수 있는 가이드를 만들어 시간을 절약하고 광범위한 문서를 검색할 필요를 없애기로 결정했습니다. 이 가이드가 다른 사람에게 도움이 된다면 정말 좋을 것 같습니다!

사용자/게시물 관계가 있다고 가정해 보겠습니다. 즉, 각 사용자는 하나 이상의 게시물을 가질 수 있고 각 게시물은 한 사용자에게 속한다는 의미입니다.
공장이란 무엇인가요?

Laravel의 Factory는 애플리케이션에 대한 테스트 데이터를 생성하는 클래스입니다. 이는 로컬 개발 및 준비 환경에 유용하며 많은 이점을 제공합니다. Laravel을 사용하면 보유한 각 모델에 대한 팩토리를 만들 수 있습니다.
시더란 무엇입니까?

Laravel의 시더는 시드 클래스를 사용하여 데이터베이스를 데이터로 채우는 데 사용되며, 이는 특히 테스트 목적에 유용합니다.
새로운 공장 생성

새 팩토리를 생성하려면 다음 명령을 실행하세요.

php artisan make:factory PostFactory

database/factories 디렉토리에서 팩토리 클래스를 찾을 수 있습니다. 다음은 공장을 정의하는 예입니다.

public function definition(): array
{
    return [
        'title' => $this->faker->sentence,
        'content' => $this->faker->paragraph,
        'user_id' => User::factory(),
    ];
}

시더 생성

새 시더를 생성하려면 다음 명령을 실행하세요:

php artisan make:seeder PostSeeder

database/seeders 디렉토리에서 시더 클래스를 찾을 수 있습니다. 다음은 이 클래스 내의 실행 함수의 예입니다:

public function run(): void
{
    Post::factory()
        ->count(20)
        ->create();
}

동일한 디렉토리에서 DatabaseSeeder 클래스를 찾을 수 있습니다. 모든 시더가 포함되어 있는지 확인하세요:

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

    // \App\Models\User::factory()->create([
    //     'name' => 'Test User',
    //     'email' => '[email protected]',
    // ]);

    $this->call([
        PostSeeder::class,
        ..,
        ..
    ]);
}

마이그레이션 실행 및 데이터베이스 시드

먼저 데이터베이스 마이그레이션을 실행합니다.

php artisan 마이그레이션

그런 다음 데이터베이스를 시드합니다.

php artisan db:씨앗

이제 테스트 데이터가 준비되었습니다. 즐기다!

원본은 내 블로그에 게시되었습니다!

릴리스 선언문 이 기사는 https://dev.to/bn_geek/a-quick-guide-to-creating-laravel-factories-and-seeders-3o09?1에 복제되어 있습니다. 침해 내용이 있는 경우에는 [email protected]으로 문의하시기 바랍니다. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3