如何通过另一个关系访问一个关系

时间:2021-02-20 20:02:20

标签: laravel

我正在开发一个调查系统,但在通过另一个关系访问一个关系时遇到问题。 我有这些模型和这些关系

发布

  • id
  • survey_id
public function survey()
{
    return $this->belongsTo(Survey::class);
}

调查

  • id
  • survey_type_id
public function surveyOptions()
{
    return $this->belongsToMany(Survey_options::class);
}
    
public function surveyType()
{
    return $this->belongsTo(Survey_type::class);
}
    
public function posts()
{
    return $this->hasMany(Post::class);
}

调查类型

  • id
public function surveyOptions()
{
    return $this->belongsToMany(Survey_options::class);
}

Survey_options

  • id
  • survey_type_id
public function values()
{
    return $this->hasMany(Option_value::class);
}

options_values

  • survey_options_id
  • survey_id
public function surveyOptions()
{
    return $this->belongsTo(Survey_options::class);
}

Survey_Survey_options(枢轴)

  • survey_id
  • survey_options_id

我需要使用 eadger 加载进行查询,以便为我带来所有带有调查、调查选项、每个调查选项的评论数和选项值的帖子。像这样:

$post->survey->surveyOptions->options_values_count

我设法创建了这个查询,除了从每个 SurveyOption 获取 option_values 计数外,它对我有用。我该怎么做?

$posts = Post::with([
            'survey' => function ($query) {
                $query->withCount('totalSurveys');
            },
            'survey.surveyOptions',
            'image',
            'categories'
          ])
          ->withCount('comments')
          ->get();

0 个答案:

没有答案
相关问题