Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel faker-循环添加记录以模拟版本控制_Php_Laravel_Laravel 5_Faker_Laravel Seeding - Fatal编程技术网

Php Laravel 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',

我正在使用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', '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),类似于这样,您将得到要点:)