【发布时间】:2023-03-12 20:47:01
【问题描述】:
我有 3 个项目的概念,所有项目都存储在数据库中,并在它们之间定义了关系。这些项目反映了对调查的回答。这些表格是:
结果:id、enrolment_id、assessment_id、完成(int)、时间戳 result_answers:id、result_id、answer_id、时间戳 答案:id、answer_plain、answer_html、时间戳
我正在尝试构建一个包含以下内容的对象:
Results (array){
id, enrolment_id, assessment_id, created_at
Result_answers (array){
Answer{
id,answer_plain
}
}
}
我正在使用以下代码:
$result = Result::where('enrolment_id', '=', $id)
->where('completed', '=', 1)
->with(['result_answers' => function($query) {
$query->with(['answer' => function($query) {
$query->select('id', 'answer_plain');
}]);
}])
->select(['id', 'enrolment_id', 'created_at'])
->get();
return response()->json($result);
不幸的是,这给了我很多不需要的字段,有效地输出了每个关系中每个表中的每个字段。如何限制输出的内容?这似乎主要是result_answers 的问题,因为我不需要该表输出的任何数据,只需要与answer 的关系(这是有效的)。
我尝试为 with() 提供一个空的 ->select(),但没有成功。
任何帮助表示赞赏。
【问题讨论】:
标签: php laravel laravel-5 eloquent laravel-5.2