我有这个生成新联系人的模型工厂,它使用随机company_id
:
$factory->define(App\Models\Contact::class, function (Faker\Generator $faker)
{
$company_id = Company::all()->random()->id;
return [
'firstname' => $faker->firstName,
'lastname' => $faker->lastName,
'phone' => $faker->phoneNumber,
'email' => $faker->email,
'company_id' => $company_id,
'lead_id' => \App\Models\Lead::where('company_id', $company_id)->get()->random()->id,
];
});
Run Code Online (Sandbox Code Playgroud)
当我在种子中使用它时是可以的:
factory(App\Models\Contact::class)->create();
Run Code Online (Sandbox Code Playgroud)
但是为了测试,我需要以某种方式传递$company_id
给工厂,为混凝土创建联系人company_id
(我知道我可以做到->create(['company_id', $company_id])
),但这只会重写来自联系人的 company_id。
当我选择时lead_id
,我还需要知道当前的company_id
.
如何将 company_id 作为参数传递给工厂?
vpa*_*ade 10
尝试使用这个例子:
$factory->define(App\Models\Contact::class, function ($faker, $params) {
$company_id = $params['company_id'];
....
});
Run Code Online (Sandbox Code Playgroud)
这是为了创建一个新对象:
$newContact = factory(App\Models\Contact::class)->make(['company_id' => $current_company_id]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5137 次 |
最近记录: |