BelongsToMany 与 BelongsToMany 关系
BelongsToMany with BelongsToMany relation
我需要从 belongsToMany 和 belongsToMany 的关系中获取数据,它会变成这样:在我的模型中 A->B->C 将是 providers->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);
}
}
数据库看起来像:
提供商
编号
名字
event_type
编号
名字
字幕
编号
名字
caption_event_type
caption_id
event_type_id
caption_provider
caption_id
provider_id
谢谢。
根据我的理解,我们的模型结构应该是这样的:
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);
}
}
并获得 EventType
的所有 providers
,你可以这样得到它:
$captions = EventType::find(1)->captions;
foreach($captions as $caption)
{
$providers_arr[] = $caption->providers;
}
$providers_collection = collect($providers_arr)->unique();
希望对您有所帮助!
我需要从 belongsToMany 和 belongsToMany 的关系中获取数据,它会变成这样:在我的模型中 A->B->C 将是 providers->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);
}
}
数据库看起来像:
提供商
编号
名字
event_type
编号
名字
字幕
编号
名字
caption_event_type
caption_id
event_type_id
caption_provider
caption_id
provider_id
谢谢。
根据我的理解,我们的模型结构应该是这样的:
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);
}
}
并获得 EventType
的所有 providers
,你可以这样得到它:
$captions = EventType::find(1)->captions;
foreach($captions as $caption)
{
$providers_arr[] = $caption->providers;
}
$providers_collection = collect($providers_arr)->unique();
希望对您有所帮助!