Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从嵌套循环停止循环,并删除特定循环集(如果该循环在laravel中有内容)_Php_Laravel - Fatal编程技术网

Php 从嵌套循环停止循环,并删除特定循环集(如果该循环在laravel中有内容)

Php 从嵌套循环停止循环,并删除特定循环集(如果该循环在laravel中有内容),php,laravel,Php,Laravel,我在db中的一个表中有几行,每一行都与三个表相关,每个表都有许多行。当我循环主表行时,我现在也循环三个表行。如果其中一个表的行中有一个内容,那么我希望防止只显示包含值的整个子循环 在我的控制器中: public function classWiseResult(Request $request){ $students = Students::where('class',$request->class) ->with('firstTerm')

我在db中的一个表中有几行,每一行都与三个表相关,每个表都有许多行。当我循环主表行时,我现在也循环三个表行。如果其中一个表的行中有一个内容,那么我希望防止只显示包含值的整个子循环

在我的控制器中:

public function classWiseResult(Request $request){
         $students = Students::where('class',$request->class)
            ->with('firstTerm')
            ->with('secondTerm')
            ->with('finalTerm')
            ->get();

        return view('admin.showResult.show',compact('students'));
}
我认为:

@foreach($students as $student)
                                      <tr>
                                        <td>{{$student->id}}</td>
                                          <td>{{$student->fname}}</td>
                                      <?php $Ftotal = 0; $Fcount = 0; ?>
                                     @foreach($student->firstTerm as $first)
                                          <?php $Fcount++;?>

                                      <?php  $Ftotal +=  gradePoint($first->number); ?>
                                     @endforeach

                                      <?php $fttp = gpa($Ftotal, $Fcount) ;?>
                                      <td>{{$fttp}}</td>
                                      <td>
@if($Ftotal){
{letterGrade(gpa($Ftotal, $Fcount))}
}
@endif
</td>
@foreach($student作为$student)
{{$student->id}
{{$student->fname}
@foreach($student->first学期作为$first)
@endforeach
{{$fttp}}
@若有($F总计){
{字母等级(gpa($Ftotal,$Fcount))}
}
@恩迪夫
结果:


如果主题编号低于32,我想跳过显示结果。此方法使用关系计数比较

控制器

public function classWiseResult(Request $request){
    $students = Students::where('class',$request->class)
        ->withCount(['firstTerm as firstTermPromoted' => function($q) {
            $q->where('number', '>', 32);
        }])
        ->withCount('firstTerm as firstTermAllCount')
        ->withCount(['secondTerm as secondTermPromoted' => function($q) {
            $q->where('number', '>', 32);
        }])
        ->withCount('secondTerm as secondTermAllCount')
        ->withCount(['finalTerm as finalTermPromoted' => function($q) {
            $q->where('number', '>', 32);
        }])
        ->withCount('finalTerm as finalTermAllCount')
        ->with('firstTerm')
        ->with('secondTerm')
        ->with('finalTerm')
        ->get();

    return view('admin.showResult.show',compact('students'));
}
在您的视图中,可以比较所有关系的总计数和通过条件的关系计数

查看

@foreach($students as $student)
    @if($student->firstTermPromoted == $student->firstTermAllCount
        && $student->secondTermPromoted == $student->secondTermAllCount
        && $student->finalTermPromoted == $student->finalTermAllCount)

        {{ "Promoted" }}

    @else

        {{ "Not Promoted" }}

    @endif
@endforeach

你想排除第一学期、第二学期或第三学期成绩低于32分的学生吗?是的,你是对的,但我想在课堂上展示所有成绩。您可以将其命名为类结果表。witch包含第一个、第二个、第三个术语的结果,最后一个结果在一张纸上。有什么想法吗?试试这样的<代码>$students=students::where('class',$request->class)->whereHas('firstterm',函数($q){$q->where('number','>',32)})->with('firstterm')->get()但我想在同一张表中包括升级和未升级。这不可能吗?@Taslim,答案似乎是上等票。不接受。请点击向下投票按钮下方的勾号。无论如何,我很高兴我的回答帮助了你。