显示Laravel foreach结果

时间:2019-06-21 12:04:33

标签: php arrays laravel-5.8

下面是我的控制器代码。

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

查看

@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 个答案:

答案 0 :(得分:2)

在获取事件ID明智数据时,您可以更改为“获取第一”,

// 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 :(得分:1)

您的控制器中不需要该循环:

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