Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 6/7/8/9/10 » Вывод значений » 24.11.2021 06:22:05

Finder
Ответов: 1

Есть таблица 'services' с перечнем услуг, таблица 'researches' с перечнем исследований и таблица 'researches_services' в которой приводится сопоставление id исследований к id услуги. Так же есть таблица направлений 'referrals' и таблица 'referrals_researches' с сопоставлением направлений и исследований. Дело в том, что в направлениях требуется сделать вывод таким образом, что если имеется такой же набор исследований, идентичный набору исследований для услуги, то выводится наименование услуги из services, если сопоставление не найдено - тогда вывести список исследований. Делаю я это следующим образом:

@foreach($referrals as $referral)
<tr>
       <td style="text-align: center; white-space: pre-wrap;">{{$referral->id}}</td>
       <td style="text-align: center; white-space: pre-wrap;">{{$referral->surname}} {{mb_substr($referral->name, 0, 1)}}. {{mb_substr($referral->patronymic, 0, 1)}}.</td>
       <td style="text-align: center; white-space: pre-wrap;">{{$referral->created_at}}</td>
       @for($i = 0; $i<count($services); $i++)
          @if(($referral->researches->pluck('title')->join(', ')) == ($services[$i]->researches->pluck('title')->join(', ')))
            <td>{{$services[$i]->title}}</td>
          @else
        <td>{{$referral->researches->pluck('title')->join(', ')}}</td>
      @endif
   @endfor
  <td style="text-align: center; white-space: pre-wrap;">{{$referral->researches->sum('price')}} ₽</td>
  <td style="text-align: center; white-space: pre-wrap;">{{$referral->user->surname}} {{mb_substr($referral->user->name, 0, 1)}}. {{mb_substr($referral->user->patronymic, 0, 1)}}.</td>
  <td style="text-align: center;"><a href="{{route('referrals.show', $referral->id)}}" class="text-muted"><i class="fas fa-search"></i></a></td>
<tr>
@endforeach

Но при таком виде происходит дублирование(?) циклов и слетает верстка. Буду признателен за помощь, как всё это сделать правильно?)
Для наглядности, как вышеуказанный код отрабатывает:
1.jpg

Подвал раздела