Из цикла остановки вложенного цикла и удаления определенного набора циклов, если этот цикл имеет содержимое в laravel - PullRequest
0 голосов
/ 09 мая 2018

У меня есть несколько строк в таблице в БД, и каждая строка связана с тремя таблицами, и каждая таблица имеет много строк. когда я зацикливаю строки основной таблицы, я также зацикливаю три строки таблицы теперь, если в одной из таблиц есть содержимое в строке, тогда я хочу запретить показывать весь цикл только для этого цикла, который содержит значение.

В моем контроллере:

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>

Результат:

Я хочу пропустить показ результата, если у меня номер темы меньше 32

1 Ответ

0 голосов
/ 09 мая 2018

Этот метод использует сравнение количества связей.

Контроллер

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'));
}

По вашему мнению, вы можете сравнить общее количество всех отношений и количество отношений, которые соответствуют условию.

View

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

        {{ "Promoted" }}

    @else

        {{ "Not Promoted" }}

    @endif
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...