php - 如何在laravel中将问题变成100的关系
问题描述
我有两个模型1. 主题 2. 问题,它有一对多的关系。学生可以选择许多他想要的科目。现在我想通过科目考试。并且测试应该是100分测试。现在我需要一种方法来完成 100 分测试。假设一个学生选择 3 个科目,如果我们将 3 个科目除以 100,那么每个科目将是 33(地板)或 34(天花板),但我想将它四舍五入到 100,我如何做到这一点。这是我获取问题的代码
foreach ($student->departments as $key => $department){
$majorSubjects[] =$department->subject_id;
}
$no_of_questions =100;
$uniqueSubjects=array_unique($majorSubjects);
$div = ceil($no_of_questions/count($uniqueSubjects));
$mul = $div*count($uniqueSubjects);
$subjects=Subject::whereIn('id',$majorSubjects)->get();
}
在我的刀刃上
@foreach($subjects as $key => $subject)
<li class=" {{$key == 0 ? 'active' : ''}}"><a href="#tab_{{ $subject->id }}" data-toggle="tab">{{$subject->name}}</a></li>
@endforeach
</ul>
<div class="tab-content">
@if(!empty($subjects))
@foreach($subjects as $key => $subject)
<div class="tab-pane {{$key == 0 ? 'active' : ''}}" id="tab_{{ $subject->id }}">
@foreach($subject->questions->random($div) as $num => $question)
<form></form>
@endforeach
解决方案
您可以使用modulus
测试来获得剩余分数。
$additional_mark_test = $no_of_questions % count($uniqueSubjects);
把它放在这里。
foreach ($student->departments as $key => $department){
$majorSubjects[] =$department->subject_id;
}
$no_of_questions =100;
$uniqueSubjects=array_unique($majorSubjects);
$div = ceil($no_of_questions/count($uniqueSubjects));
$mul = $div*count($uniqueSubjects);
// Get the remaining test
$additional_mark_test = $no_of_questions % count($uniqueSubjects);
$subjects=Subject::whereIn('id',$majorSubjects)->get();
}
在您的刀片中,这将首先检查是否$additional_mark_test
为空。
@if(!empty($additional_mark_test))
@foreach($subject->questions->random($additional_mark_test) as $num => $question)
<form></form>
@endforeach
@php $additional_mark_test = 0; @endphp
@endif
把它放在这里。
@foreach($subjects as $key => $subject)
<li class=" {{$key == 0 ? 'active' : ''}}"><a href="#tab_{{ $subject->id }}" data-toggle="tab">{{$subject->name}}</a></li>
@endforeach
</ul>
<div class="tab-content">
@if(!empty($subjects))
@foreach($subjects as $key => $subject)
<div class="tab-pane {{$key == 0 ? 'active' : ''}}" id="tab_{{ $subject->id }}">
@foreach($subject->questions->random($div) as $num => $question)
<form></form>
@endforeach
<!--Additional Mark Test(This will be add to first subject)-->
@if(!empty($additional_mark_test))
@foreach($subject->questions->random($additional_mark_test) as $num => $question)
<form></form>
@endforeach
@php $additional_mark_test = 0; @endphp
@endif
推荐阅读
- c# - 在 SQLite C# WinForms 中导入数据时出现问题
- arrays - 如何在reactjs中搜索数组内部
- ruby - Ruby 中的“触发器已弃用”警告的解决方法
- php - Behat 错误:使用有效的 rexeg 时出现“未定义的步骤”(小黄瓜中的可选文本/变量)
- mysql - 将结果存储在动态查询的变量中
- unity3d - 粒子系统 - 并非所有粒子都有纹理精灵
- r - 如何将值 1 更改为 NA
- angular - 如何从 Angular Resolver 组件的 url 获取 id
- javascript - 进行非功能性更改时是否应该发布新的库版本?
- javascript - 错误:模块未声明为模块的 System.registerDynamic 依赖项