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
关系 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
可能这是一个简单的解决方法,或者我正在以错误的方式解决它,但希望这里有人可以帮助我。
我有以下型号
- 事件
- 参展商
- 额外参展商
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
关系 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