또한 폐쇄가 공장 정의 속성을 사용하여 모델의 관계를 첨부 할 수 있습니다. 당신이 포스트를 만들 때 새로운 사용자 인스턴스를 생성하려는 경우 예를 들어, 당신이 할 수있는 다음과 같은 :
$factory->define(App\Post::class, function ($faker) {
return [
'title' => $faker->title,
'content' => $faker->paragraph,
'user_id' => function() {
return factory(App\User::class)->create()->id;
}
];
});
내가 실행 해요 문제는 내 create()
에 대한 참조입니다 관계 정의. 이것이 나에게 속하지 않는 것처럼 보입니다.
그것은 내가 데이터베이스에 대한 나의 관계를 유지하고자하고 있다면 좋은 작품 : 생성 될이 바로 위에 새로운 App\Post
새로운 App\User
를 코드를 실행하여
factory(App\Post::class)->create();
을 모두 데이터베이스에 지속 .
하지만 난 그냥 모델 (들)를 new
를 실행하여 데이터베이스에 어떤 (모든) 유지되지하려면 :
factory(App\Post::class)->make();
그것은 내가 특정 시점까지 원하는 것을. 새로운 App\Post
인스턴스가 생성되었지만 지속되지는 않지만 App\Comment
이 생성되어 데이터베이스에 유지됩니다.
$factory->define(App\Post::class, function ($faker) {
return [
'title' => $faker->title,
'content' => $faker->paragraph,
'user_id' => function() {
// here I only want to declare the relationship,
// not decide whether I want to create() or make()
// the relationship, something like:
return factory(App\User::class)->createOrMake()->id;
// or perhaps something like:
return factory(App\User::class)->id;
}
];
});
최종 결과는 내가이에서 할 노력하고있어 존중하기 위해 관련 데이터를 원하는 것입니다 :
내가 정말 원하는 것은이 같은 것을 나에게 보인다 통화 상단. 모든 것을 만드십시오. 또는 모든 것을 만들 수 있습니다.
여기에 뭔가 잘못입니까? 아니면 현재 존재하지 않는 무언가입니까?
감사합니다.