【问题标题】:Eager load nested relationships in Laravel Eloquent在 Laravel Eloquent 中急切加载嵌套关系
【发布时间】:2017-09-30 20:38:53
【问题描述】:

我有六个模型:Division、Region、Area、Branch、Mis 和 Policy。一个部门有很多区域,一个区域有很多区域,一个区域有很多分支,一个分支有很多地方,一个地方有一个政策,一个政策属于一个地方。我想急切地加载一个包含错误、分支、区域、区域和部门的策略。当我尝试这样做时,策略会加载错误和分支,但未加载其他关系。这是我的模型:

部门:

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);
}

如果有人可以帮助我找到解决方案,我们将不胜感激。

【问题讨论】:

    标签: eloquent laravel-5.4 eager-loading


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多