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

王林
풀어 주다: 2024-07-16 20:33:12
원래의
347명이 탐색했습니다.

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 디렉토리에서 Seeder 클래스를 찾을 수 있습니다. 다음은 이 클래스 내 실행 함수의 예입니다.

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' => 'test@example.com',
    // ]);

    $this->call([
        PostSeeder::class,
        ..,
        ..
    ]);
}
로그인 후 복사

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

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

php artisan 마이그레이션

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

php artisan db:seed

이제 테스트 데이터가 준비되었습니다. 즐겨보세요!

원본은 제 블로그에 올렸습니다!

위 내용은 라라벨 팩토리와 시더 생성을 위한 빠른 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿