나는 연습문제, 취미 프로젝트, 실제 애플리케이션 등 내 프로젝트를 위한 새로운 팩토리와 시더를 만들어야 할 때마다 종종 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:씨앗
이제 테스트 데이터가 준비되었습니다. 즐기다!
원본은 내 블로그에 게시되었습니다!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3