提问者:小点点

Laravel Eloquent中的渴望加载嵌套关系


我有六个模型:部门、地区、地区、分支机构、Mis和政策。一个部门有许多地区,一个地区有许多地区,一个地区有许多分支机构,一个分支机构有许多MISE,一个mis有一个策略,一个策略属于一个mis。我希望加载一个包含mis、分支机构、区域、区域和部门的策略。当我尝试这样做时,一个策略加载了mis和branch,但其他关系没有加载。以下是我的模型:

分部:

public function regions () {
    return $this->hasMany(Region::class);
}
public function areas () {
    return $this->hasManyThrough(Area::class, Region::class);
}

地区:

public function division () {
    return $this->belongsTo(Division::class);
}
public function areas () {
    return $this->hasMany(Area::class);
}
public function branches () {
    return $this->hasManyThrough(Branch::class, Area::class);
}

面积:

public function region () {
    return $this->belongsTo(Region::class);
}
public function branches () {
    return $this->hasMany(Branch::class);
}

分支机构:

public function area () {
    return $this->belongsTo(Area::class);
}
public function mises () {
    return $this->hasMany(Mis::class);
}

管理信息系统:

public function policy () {
    return $this->hasOne(Policy::class);
}
public function branch () {
    return $this->belongsTo(Branch::class);
}

政策:

public function mis () {
    return $this->belongsTo(Mis::class);
}

这就是我尝试进行快速加载的方式:

public function showPolicyReport () {
    $policies = Policy::with('mis.branch.area.region.division')->get();
    dd($policies);
}

如果有人能帮我找到解决办法,我将不胜感激。


共1个答案

匿名用户

不要介意。实际上,关系已正确加载。是dd()方法没有显示所有嵌套关系。