我需要从belongsToMany与belongsToMany的关系中获取数据,它会如此:我的模型中的A-> B-> C将是provider-> caption-> eventType,所以你需要从事件类型中获取所有提供者。
模型看起来像:
提供者模型
Class Provider extends Model {
public function captions() {
return $this->belongsToMany(Caption::class);
}
}
字幕模型
Class Caption extend Model {
public function event_type() {
return $this->belongsToMany(Event_type::class);
}
public function providers() {
return $this->belongsToMany(Provider::class);
}
}
事件类型模型
Class Event_type extends Model {
public function captions() {
return $this->belongsToMany(Caption::class);
}
}
数据库看起来像:
提供商
ID
名称
EVENT_TYPE
ID
名称
字幕
ID
名称
caption_event_type
caption_id
event_type_id
caption_provider
caption_id
PROVIDER_ID
Thnks。
答案 0 :(得分:0)
根据我的理解,我们的模型结构应该是这样的:
class Provider extends Model {
public function captions()
{
return $this->belongsToMany(Caption::class);
}
}
class EventType extends Model {
public function captions()
{
return $this->belongsToMany(Caption::class);
}
}
class Caption extends Model {
public function providers()
{
return $this->belongsToMany(Provider::class);
}
public function eventTypes()
{
return $this->belongsToMany(EventType::class);
}
}
要获得providers
的所有EventType
,就可以这样:
$captions = EventType::find(1)->captions;
foreach($captions as $caption)
{
$providers_arr[] = $caption->providers;
}
$providers_collection = collect($providers_arr)->unique();
希望这有帮助!