최근 Model Factory 및 Faker를 통해 Laravel 시드를 사용하여 데이터베이스를 시드하려고 시도했습니다.불필요한 모델을 만들지 않고 모델 팩토리, 일대일 및 일대 다 관계로 Laravel 외래 키 정의
간단한 스키마의 경우 간단하게 작업 할 수 있습니다. :). 복잡한 외래 키를 포함 DB 스키마 및 테이블 관계 작업 할 때 그러나, 나는 몇 가지 문제가 발생했습니다 :
- 한
- 하나 하나에 많은
- 많은에 많은
... 링크에 설명 된 것과 같습니다 : Laravel 5.1 foreign keys in model factory. 이 항목의 내용
는 official documentation이 같은 데이터베이스 씨앗 실행 제안 :public function run()
{
factory(App\User::class, 50)->create()->each(function ($u) {
$u->posts()->save(factory(App\Post::class)->make());
});
}
을 ...하지만이 솔루션에 한 가지 문제가있다 :과 (많은 DB 테이블과 실행 많은 종자가 작업을 할 때 그들 사이의 많은 관계),이 방법론을 사용하여 많은 불필요한 모델을 생성하는 것이 일반적입니다. . 예를 들어 위 예제의 앞에 PostsTableSeeder.php를 실행했다면 모든 게시물은 사용자와 연결되지 않았으므로 테스트 및 개발에 절대 사용되지 않습니다.
이 상황을 처리 할 수있는 방법을 찾았는데, 나를 위해 작동하는 '고아'모델의 불필요한 생성을 피할 수있는 기능적 해결책을 찾았습니다. ...
그리고 나는 그것을 모든 사람과 공유하고 싶었습니다. 대답 :).
예를 다룬다 : 그래서 여기
많은 관계?나는 많은 것을 해결하기 위해 User_Cases 테이블을 가진 사용자와 케이스를 가지고있다. 나는 내 DB를 뿌리기 위해 공장을 쓰려고 노력하고있다. – Kenilik
나는 공장이 아닌 파종기에서 ** ** ** ** ** ** 많은 접근법을 얻는다. 당신의 파종기에서는 두 모델 (* 사용자 *와 * 사례 *)을 간단히 검색하고 그 중 하나를 통해 다른 모델 (들). – andcl