首页 > 解决方案 > 如何在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

标签: phplaravellaravel-blade

解决方案


您可以使用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

推荐阅读