eloquent 从关系中获取关系数据

eloquent getting relationship data from relationship

可能这是一个简单的解决方法,或者我正在以错误的方式解决它,但希望这里有人可以帮助我。

我有以下型号

Event 模型有很多 exhibitor 的,通过 exhibitorExtra 模型关联。

我想做的是为一个活动获取参展商和参展商的额外数据。

此 returns 事件数据。

$event = Event::where('Name', $name)->firstOrFail();

以下通过 hasMany 关系检索参展商的所有额外数据。

$exhibitorsExtra = $event->getExtraData->all();

这 returns 所有参展商数据都通过正在运行的 hasManyThrough 函数。

$exhibitors = $event->exhibitors->all();

在我看来,我需要来自参展商的所有活动数据。所以这包括额外的数据。通过上述方式,我将所有值分开。在我看来,我将遍历所有我需要回应参展商和参展商额外数据的参展商。这样做的最佳方法是什么?

我试着用英文重新输入所有内容,以使其更清楚。因此,如果我有任何拼写错误,请告诉我,我会更改以供其他人进一步使用。

更新

我已将控制器中的行更改为以下内容:

$event = Event::with('exhibitors')->with('exhibitorsExtra')->where('Name', $slug)->firstOrFail();

通过这种方式,我有一个包含 2 个保存数据的关系的事件。现在在我看来我想做这样的事情:

@foreach ($event->exhibitors as $index => $exhibitor)
    // Here I have the exhibitor data but how do I acces the exhibitorExtra data?
@endforeach

您添加 HasMany 关系 ExhibitorExhibitorExtra(称为 extra)。

更改您的控制器:

$event = Event::with('exhibitors.extra')->where('Name', $slug)->firstOrFail();

然后您就可以在您的视图中访问它了:

@foreach ($event->exhibitors as $index => $exhibitor)
    @foreach($exhibitor->extra as $extra)
        //
    @endforeach
@endforeach