42

テーブルと、usersテーブルとの 1 対 0/1 の関係がありbusinessesます (users.user_id => business.user_id)。私のusersテーブルには、ユーザーのタイプがビジネスであるかどうかを示す識別子があるため、businessesテーブルにも詳細が必要です。

現在稼働している工場でユーザーを作成し、識別子がビジネス アカウントを指すビジネスの詳細のみを作成したいと考えています。

私には次の 3 つの選択肢があります。

  1. ユーザー ファクトリから作成し、'->each()' を使用してディスクリミネータをチェックし、ファクトリを使用して新しいビジネス ユーザーを作成します。user_idしかし、ユーザーが割り当てられた 業務工場に渡すことができません。
  2. 最初にユーザーを作成します。次に、ビジネス シーダーで、「ビジネス」識別子に一致するすべてのユーザーを取得します。次に、これらすべてのユーザーに対して、ビジネスの詳細を作成するファクトリを実行します。user_idしかし、繰り返しになりますが、すでに作成されているユーザーを何らかの方法でビジネス ファクトリにリンクする必要がありますuser_id
  3. 私のビジネス ファクトリでは、新しいユーザーを作成し、ID を取得して、 と の間のリンクを作成しusers.user_idますbusiness.user_id。ただし、ランダムジェネレーターを使用しているuser.user_typeため、businessesテーブルがいっぱいになっていても、識別子が「個人用」であるユーザー向けである可能性があります。

別の方法はありますか?Seeder からファクトリに引数を渡すことはできますか?

4

3 に答える 3

0

送信属性、

factory(App\User::class)->create(['businessId' => $businessId]);

それを取得し、

$factory->define(App\User::class, function (Faker $faker, $businessInfo) {
    //$businessInfo['businessId']
});
于 2022-02-09T15:40:03.160 に答える