Php Laravel faker-循环添加记录以模拟版本控制
我正在使用faker为我的数据库添加种子Php Laravel faker-循环添加记录以模拟版本控制,php,laravel,laravel-5,faker,laravel-seeding,Php,Laravel,Laravel 5,Faker,Laravel Seeding,我正在使用faker为我的数据库添加种子 $factory->define(App\Product::class, function (Faker\Generator $faker) { $campaign = factory(App\Campaign::class)->create(); $size= $faker->randomElement($array = array ('728x90','300x250','315x315', '715x425',
$factory->define(App\Product::class, function (Faker\Generator $faker) {
$campaign = factory(App\Campaign::class)->create();
$size= $faker->randomElement($array = array ('728x90','300x250','315x315', '715x425', '750x650'));
return [
'campaign_id' => $campaign->campaign_name,
'size' => $size,
'product_id' => $campaign->campaign_name."_".$size,
'version' => $faker->randomElement($array = array ('1','2','3', '4', '5')),
];
});
我感兴趣的是版本字段。我想做的是生成一个介于1和5之间的随机数,然后在数据库中输入该数量的记录
因此,根据创建的“版本”数量,一个产品可以有1个条目和5个条目
这可能吗
我在返回数组中尝试了一个简单的for循环,但没有成功。根据您所说的,您希望为具有不同版本的同一产品创建多个条目。模型工厂可用于创建单个模型条目。你可以在播种机中直接使用仿冒者,实现你的期望
$campaign = factory(App\Campaign::class)->create();
$size= $faker->randomElement($array = array ('728x90','300x250','315x315', '715x425', '750x650'))
$max_version = $faker->randomElement($array = array ('1','2','3', '4', '5'));
for ($version=0; $version < $max_version; $version++) {
Product::create([
'campaign_id' => $campaign->campaign_name,
'size' => $size,
'product_id' => $campaign->campaign_name."_".$size,
'version' => $version,
]);
}
$campaign=factory(App\campaign::class)->create();
$size=$faker->randomElement($array=array('728x90','300x250','315x315','715x425','750x650'))
$max_version=$faker->randomElement($array=array('1','2','3','4','5');
对于($version=0;$version<$max_version;$version++){
产品::创建([
“campaign\u id”=>$campaign->campaign\u名称,
“大小”=>$size,
“产品标识”=>$campaign->campaign\u name.“\uu”。$size,
“版本”=>$version,
]);
}
根据您所说的,您希望为具有不同版本的同一产品创建多个条目。模型工厂可用于创建单个模型条目。你可以在播种机中直接使用仿冒者,实现你的期望
$campaign = factory(App\Campaign::class)->create();
$size= $faker->randomElement($array = array ('728x90','300x250','315x315', '715x425', '750x650'))
$max_version = $faker->randomElement($array = array ('1','2','3', '4', '5'));
for ($version=0; $version < $max_version; $version++) {
Product::create([
'campaign_id' => $campaign->campaign_name,
'size' => $size,
'product_id' => $campaign->campaign_name."_".$size,
'version' => $version,
]);
}
$campaign=factory(App\campaign::class)->create();
$size=$faker->randomElement($array=array('728x90','300x250','315x315','715x425','750x650'))
$max_version=$faker->randomElement($array=array('1','2','3','4','5');
对于($version=0;$version<$max_version;$version++){
产品::创建([
“campaign\u id”=>$campaign->campaign\u名称,
“大小”=>$size,
“产品标识”=>$campaign->campaign\u name.“\uu”。$size,
“版本”=>$version,
]);
}
最简单的解决方案之一是在测试类中创建工厂方法(或trait),类似于这样,你会明白这一点:)
最简单的解决方案之一是在测试类中创建工厂方法(或trait),类似于这样,您将得到要点:)