首页 > 解决方案 > Laravel 查询关系是否存在

问题描述

我的 Laravel 控制器中有以下查询:

public function getTeams(){      
  $teams = Team::whereHas('submissions', function($q){
    $q->limit(1);
  })->with(['submissions'])->get();

  return response()->json(['data'=>$teams]);
}

团队模型:

   public function submissions(){
        return $this->hasMany('App\submission', 'team_id', 'id');
    }

提交模型:

public function team(){
    return $this->belongsTo('App\Team', 'id', 'team_id');
}

现在我试图在getTeams方法中只提交一份。但是限制功能无法正常工作。它不返回任何错误。它返回每个团队的所有提交。我只想要 1 次提交。我如何使它工作?

在此处输入图像描述

标签: laraveleloquent

解决方案


 $teams = Team::whereHas('submissions')
    ->with([
        'submissions' => function($query) {
            $query->limit(1);
        }
    ])->get();

推荐阅读