我正在建立一个同行评卷系统。我希望系统自动分配2个不同的提交给学生评分。因此,每个学生可以被分配两个不同的提交给马克,其中两个提交不属于他/她自己。一份作业只能分配给两个不同的学生(提交只能分配两次)
我使用submission表来获取用户的id。提交属于提交。提交表保存学生提交的提交。
public function handle(){
$students = Submission::all();
foreach ($students as $student) {
$jobs = Submission::all()->shuffle();
$i = 0;
foreach ($jobs as $job) {
if (($job->user_id !== $student->user_id) && ($i<2) ) {
$i++;
$newjob = New AssignSubmission;
$newjob->submission_id = $job->id;
$newjob->user_id = $student->user_id;
$newjob->save();
}
}
}
}
我的问题是如何限制提交表单保存超过2次。我只想要给两个不同学生的一份作业。
这是一个结果。
这是我预期的结果
1条答案
按热度按时间xpcnnkqh1#
我自己解决。如果有15个学生,那么就有15个作业,很容易保证他们不会拿到作业。只要排列整齐,第一个同学就得第二名,第二名就得第三名。。。最后拿第一名。然而,这是有局限性的,我可以猜测我会得到谁。然后它就变成了一个变量