我正在尝试计算通过主表上的关系建立的关系中的行数。我总共有3张桌子。
调查:
| id |
问题:
| id | survey_id |
回复:
| id | question_id |
我正在尝试从调查表中获取响应表中的总数。我已经建立了所有关系,但是似乎无法获得总数。
我尝试做->withCount('questions.responses')
,但这会导致500错误。我知道我可以遍历,但不知道在Eloquent中是否有更有效的方法可以做到这一点。
答案 0 :(得分:0)
您可以使用Has Many Through关系来实现。
在您的模型中:
/* Survey.php */
public function responses()
{
return $this->hasManyThrough(Response::class, Question::class);
}
然后在您的控制器中:
/* SurveyController.php */
public function index()
{
// Get your surveys with your desired attribute:
$surveys = Survey::withCount('responses')->get();
return view('my_cool_view')->withSurveys($surveys);
}