Probaly这是一个简单的解决方案,或者我会以错误的方式解决它,但希望有人可以帮助我。
我有以下型号
活动模型中有许多参展商通过参展商的埃斯特拉模型相关联。
我要做的是参展商和参展商的参展资料。
这将返回事件数据。
$event = Event::where('Name', $name)->firstOrFail();
以下内容通过hasMany关系检索参展商的所有额外数据。
$exhibitorsExtra = $event->getExtraData->all();
这将通过正在运行的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
答案 0 :(得分:1)
您添加HasMany
关系Exhibitor
→ExhibitorExtra
(称为extra
)。
更改您的控制器:
$event = Event::with('exhibitors.extra')->where('Name', $slug)->firstOrFail();
然后您可以在视图中访问它:
@foreach ($event->exhibitors as $index => $exhibitor)
@foreach($exhibitor->extra as $extra)
//
@endforeach
@endforeach