Вот каким я хочу быть
Действительный
Статус печатается 3 раза
Я возвращаю эти объекты из своего контроллера:
return view('ViewTicket') ->with('tickets', $tickets)
->with('user', $user)
->with('priority', $priority)
->with('status', $status)
->with('type', $type);
Однако я хочу напечатать соответствующие поля, как на мой взгляд:
@foreach ($tickets as $t)
<tr>
<td> {{$t->id}} </td>
@foreach ($user as $u)
@if ($t->user_id==$u->Id)
<td>{{ $u->UserName }}</td>
@endif
@endforeach
Даже это не решает мою проблему. Есть ли способ избежать цикла внутри цикла для получения этих данных? Цель состоит в том, чтобы получить соответствующие поля для каждого билета.
Если я dd($user), он возвращает 3 значения, хорошо
когда я зацикливаюсь на своем представлении, он отображает 9 значений, что означает, что он повторяет в 3 раза больше значений
Заранее спасибо
@EmilePels, как я могу вернуть данные и использовать только один foreach
Вы пробовали использовать активные отношения? Что-то вроде: $thickets = Ticket::with('user')->get();, а затем в вашем цикле просто напишите $ticket->user->UserName без дополнительного foreach и if.






ДОПУЩЕНИЯ
$tickets - это набор объектов ticket.$user - это набор объектов user.КОД
@foreach ($tickets as $t)
<tr>
@foreach ($user as $u)
@if ($t->user_id == $u->Id)
<td> {{$t->id}} </td>
<td>{{ $u->UserName }}</td>
@endif
@endforeach
</tr>
@endforeach
Я хочу использовать только один foreach
Хорошо, но не могли бы вы объяснить, как вы хотите связать $ticket и $user? На каких равенствах вы хотите сосредоточиться?
оба из них, они являются выборками разных таблиц
Не могли бы вы отредактировать свой пост и привести несколько примеров ввода / вывода?
@EmilePels Нет, это не совсем тот же код. В коде OP билет id будет распечатан для всех строк билетов. То же самое с моим. Он будет печататься только при совпадении с идентификатором user's. Кроме того, OP внес изменения, чтобы сделать его похожим на мой. Изначально у него был = вместо ==
@RandomUser Извините, но вы не можете опубликовать изображение и ожидать, что мы его поймем. Пока неясно. Что такое actual status и сколько раз его нужно распечатать? Почему вы хотите использовать один цикл foreach вместо двух вложенных циклов?
= или == не решает мою проблему здесь вложенные циклы
он должен печататься только один раз в строке, теперь он печатается столько, сколько есть билетов ...
@RandomUser Я не говорю, что это должно решить вашу проблему. Я говорю, что вам нужно быть ясным. Насколько я понимаю, вы хотите распечатать ticket только один раз, когда есть совпадение с user. Я прав?
Хорошо, так что мой код в ответе дает вам? Он должен работать. Какой результат вы получаете?
Я уже сказал вам, он печатается столько, сколько есть билетов ... в той же строке ex, если есть 4 элемента, имя пользователя печатается 4 раза в первой строке
В своем вопросе вы упомянули The goal is to get respective fields for each ticket. Итак, вам нужно выполнить цикл для каждого билета. Кроме того, вы говорите, что у одного пользователя много билетов?
проверьте мой комментарий выше, возможно
Хорошо, я проверил, и если user's name напечатан 4 раза в первой строке, это означает, что $user имеет повторяющиеся записи. Вы можете показать мне красноречивый вопрос о $user? Вы можете отредактировать свой пост для этого.
в нем нет повторяющихся записей, нет красноречия для этого
Как $user имеет какие-то ценности? Вы можете нам это показать? Вы должны сообщить подробности, иначе нет смысла. Что такое $tickets? Имеет ли tickets отношение "многие к одному" с моделью User? Вам также необходимо будет предоставить некоторые значения таблицы DB для tickets и user, точный вывод того, каким вы хотите, чтобы таблица была (с точными значениями). Я спрашиваю, потому что не могу догадываться.
Позвольте нам продолжить обсуждение в чате.
Вы путаете метод запроса
withс методом в представлении.