Laravel foreach несколько данных

Вот каким я хочу быть Laravel foreach несколько данных Действительный Laravel foreach несколько данных Статус печатается 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 раза больше значений

Заранее спасибо

Вы путаете метод запроса with с методом в представлении.

Emile Pels 28.05.2018 20:46

@EmilePels, как я могу вернуть данные и использовать только один foreach

RandomUser 28.05.2018 20:51

Вы пробовали использовать активные отношения? Что-то вроде: $thickets = Ticket::with('user')->get();, а затем в вашем цикле просто напишите $ticket->user->UserName без дополнительного foreach и if.

Ionel Lupu 28.05.2018 22:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
624
1

Ответы 1

ДОПУЩЕНИЯ

  • $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

RandomUser 28.05.2018 21:00

Хорошо, но не могли бы вы объяснить, как вы хотите связать $ticket и $user? На каких равенствах вы хотите сосредоточиться?

nice_dev 28.05.2018 21:01

оба из них, они являются выборками разных таблиц

RandomUser 28.05.2018 21:01

Не могли бы вы отредактировать свой пост и привести несколько примеров ввода / вывода?

nice_dev 28.05.2018 21:02

@EmilePels Нет, это не совсем тот же код. В коде OP билет id будет распечатан для всех строк билетов. То же самое с моим. Он будет печататься только при совпадении с идентификатором user's. Кроме того, OP внес изменения, чтобы сделать его похожим на мой. Изначально у него был = вместо ==

nice_dev 28.05.2018 21:11

@RandomUser Извините, но вы не можете опубликовать изображение и ожидать, что мы его поймем. Пока неясно. Что такое actual status и сколько раз его нужно распечатать? Почему вы хотите использовать один цикл foreach вместо двух вложенных циклов?

nice_dev 28.05.2018 21:13

= или == не решает мою проблему здесь вложенные циклы

RandomUser 28.05.2018 21:14

он должен печататься только один раз в строке, теперь он печатается столько, сколько есть билетов ...

RandomUser 28.05.2018 21:15

@RandomUser Я не говорю, что это должно решить вашу проблему. Я говорю, что вам нужно быть ясным. Насколько я понимаю, вы хотите распечатать ticket только один раз, когда есть совпадение с user. Я прав?

nice_dev 28.05.2018 21:18

Хорошо, так что мой код в ответе дает вам? Он должен работать. Какой результат вы получаете?

nice_dev 28.05.2018 21:21

Я уже сказал вам, он печатается столько, сколько есть билетов ... в той же строке ex, если есть 4 элемента, имя пользователя печатается 4 раза в первой строке

RandomUser 28.05.2018 21:23

В своем вопросе вы упомянули The goal is to get respective fields for each ticket. Итак, вам нужно выполнить цикл для каждого билета. Кроме того, вы говорите, что у одного пользователя много билетов?

nice_dev 28.05.2018 21:25

проверьте мой комментарий выше, возможно

RandomUser 28.05.2018 21:26

Хорошо, я проверил, и если user's name напечатан 4 раза в первой строке, это означает, что $user имеет повторяющиеся записи. Вы можете показать мне красноречивый вопрос о $user? Вы можете отредактировать свой пост для этого.

nice_dev 28.05.2018 21:30

в нем нет повторяющихся записей, нет красноречия для этого

RandomUser 28.05.2018 21:31

Как $user имеет какие-то ценности? Вы можете нам это показать? Вы должны сообщить подробности, иначе нет смысла. Что такое $tickets? Имеет ли tickets отношение "многие к одному" с моделью User? Вам также необходимо будет предоставить некоторые значения таблицы DB для tickets и user, точный вывод того, каким вы хотите, чтобы таблица была (с точными значениями). Я спрашиваю, потому что не могу догадываться.

nice_dev 28.05.2018 21:36

Позвольте нам продолжить обсуждение в чате.

nice_dev 28.05.2018 21:40

Другие вопросы по теме