Отображение результатов Laravel foreach - PullRequest
0 голосов
/ 21 июня 2019

Ниже код моего контроллера.

foreach ($events as $eventId) {
    $eventArray[] = Events::where('id', $eventId['event_id'])->get();
}

View

@foreach ($eventArray as $key => $value)
    <tr>
        <td>{{ $value }}</td>
    </tr>
@endforeach

Полученный результат выглядит следующим образом.

[{"id":1,"event_title":"yoga","event_date":"2019-06-24 00:00:00"}]

Как я могу отобразить вышеупомянутые результаты в таблице?

Ответы [ 2 ]

2 голосов
/ 21 июня 2019

Вы можете изменить метод get to first при получении данных с идентификатором события,

// first here to fetch one data
$eventArray[] = Events::where('id',$eventId['event_id'])->first(); 

Тогда в блейде вы можете получить доступ с синтаксисом объекта как ->

@foreach ($eventArray as $key => $value)
{{ dd($value)}}
<!-- or -->
{{ $value->id }}
@endforeach

Тогда вы будете знать, как его использовать.

Рекомендуемый подход,

// fetch the required event ids
$eventIds     = array_column($events, "event_id");
// then fetch the data for those ids
$eventArray = Events::whereIn('id', $eventIds)->get();
1 голос
/ 21 июня 2019

Нет необходимости в этом цикле в вашем контроллере:

$events = Events::whereIn('id', array_column($events, 'event_id'))->get();

return $this->view('yourview', compact($events));

На ваш взгляд:

<table>
    <thead>
        <tr>
             <th>Title</th>
             <th>Date</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($events as $event)
        <tr>
             <td>{{$event->event_title}}</td>
             <td>{{$event->event_date}}</td>
        </tr>
        @endforeach
    </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...