如何解决在Laravel的工厂中获取表的数量
我正在Laravel中制作测验应用程序,但遇到了一些麻烦。
我在数据库中有两个表,问题和答案(问题有标题和图像,答案有答案,正确的字段和question_id),我正在Laravel中为其制作种子。我想这样做,所以一个问题只有3个答案,只有一个正确,所以我尝试在答案工厂中做这样的事情(有点混乱,因为我正在尝试一些东西):
$idEnconTrado = false;
$questionId = Question::inRandomOrder()->first()->id;
$answers = Answer::where("question_id",$questionId)->get();
while ($idEnconTrado == false){
if(count($answers) < 3){
$idEnconTrado = true;
}else{
$questionId = Question::inRandomOrder()->first()->id;
$answers = Answer::where("question_id",$questionId)->get();
}
}
return [
'answer' => $this->faker->paragraph("2"),'correct' => function () use ($questionId,$answers) {
$correcta = false;
if(count($answers) == 0){
$correcta = true;
}
return $correcta;
},"question_id" => $questionId,];
尝试执行一段时间后,我发现似乎出于某种原因我为答案所做的计数总是返回0,因此没有任何效果。 我知道我真的可以手动执行此操作,但是现在我花了一些时间尝试解决此问题,所以我想知道是否有方法可以执行此操作。 谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。