Php 循环创建模型

Php 循环创建模型,php,laravel,Php,Laravel,我试图做的是为一年中的每个月创建5个新模型 for ($i = 1; $i <= 12; $i++) { for ($j = 51; $j <= 55; $j++) { factory(Employee::class)->create([ 'name' => 'Employee '. $j, ])->employments()->create(['started_at' => now()-&

我试图做的是为一年中的每个月创建5个新模型

for ($i = 1; $i <= 12; $i++) {
    for ($j = 51; $j <= 55; $j++) {
        factory(Employee::class)->create([
            'name' => 'Employee '. $j,
        ])->employments()->create(['started_at' => now()->subYear(1)->addMonth($i);
    }
}
对于($i=1;$i“员工”。$j,
])->employments()->create(['started_at'=>now()->子年(1)->addMonth($i);
}
}

目前的问题是,每个月后它都会从51开始倒数。我希望它能从最后一个数字开始倒数。

将可打印的员工编号(以前的
$j
)从循环中取出,这样它就不会按照
for loop
本身的说明重置:

$eNum = 1;
for ($i = 1; $i <= 12; $i++) {
   for ($j = 51; $j <= 55; $j++) {
       factory(Employee::class)->create([
           'name' => 'Employee '. $eNum,
       ])->employments()->create(['started_at' => now()->subYear(1)->addMonth($i);
       $eNum ++;
   }
}
$eNum=1;
对于($i=1;$i“员工”。$eNum,
])->employments()->create(['started_at'=>now()->子年(1)->addMonth($i);
$eNum++;
}
}

$j
变量对于现在的打印来说并不重要,可以从1或51或任何您喜欢的值开始。如果您希望打印数字并继续递增,只需保留可打印的变量(
$eNum
)循环之外。

这是一个特殊的数字,还是我们可以使用任何数字?在我创建50个模型之前,我需要将数字从51开始。为什么在工厂函数之后再次调用
employments()
factory()->create()->employments()
如果我运行上述建议的解决方案,我会在51岁开始,第一个月后会是56岁,依此类推。我不知道这是怎么可能的。如果您运行上述解决方案,
$eNum
从1开始。您的第一个员工姓名是“员工1”,最后一个员工姓名应该是“员工60”.正如我在回答中所指出的,
$j
变量对于可打印的内容并不重要。您要求的数字继续,这就是您如何做到的。我需要它从51开始,第一个月以及之后的每个月创建5名员工无问题-在第一行将
$enum
设置为51。然后它将在f继续rom 51到大约110。但是对于($j=51;…)来说,这将不再有效。