我仍在学习Laravel,使用eloquent运行我的查询。在我的应用程序中,用户可以属于一个圆圈。这个圆圈包含存储库,存储库又包含项目。我试图获取属于一个圆圈内不同存储库的所有项目。
用户模型:
public function circle () {
return $this->belongsTo('App\Models\Circle');
}
圆形模型:
public function users () {
return $this->hasMany('App\Models\User');
}
public function repositories () {
return $this->hasMany('App\Models\Repository');
}
仓库模型:
public function items () {
return $this->hasMany('App\Models\Item');
}
public function circle () {
return $this->belongsTo('App\Models\Circle');
}
物品模型:
public function repository () {
return $this->belongsTo('App\Models\Repository');
}
这里是我试图遍历所有项的标记:
@foreach($items as $item)
<span>{{ $item->name }}</span>
@endforeach
我负责处理路由的控制器在这里:
function library () {
$user = Auth::user();
$circle = $user->circle;
$repositories = $circle->repositories;
$items = $repositories->items;
return View('pages.library', compact(['user', 'circle', 'items']));
}
目前我可以检索到属于一个圈子的2个仓库,但是我无法检索到属于这两个仓库的多个项。我已经尝试了在仓库上使用@foreach循环来遍历并将项推入空数组,但最终只得到最后一项。我是否错过了查询技巧/步骤?