我有下面这个函数,它可以得到一门课程,以及属于它的所有科目。
public function getSubjectsPeriodsJson(int $id){
$student = Student::find($id);
$course=$student->courses()->latest()->first();
$subjects = $course->subjects()->get();
$data = [
'course' => $course,
'subjects' => $subjects
];
return response()->json($data, 200);
}
它现在的方式返回如下所示的json响应:
{
"course": {
"id": 25,
"name": "1A",
"academic_course_id": 18,
"user_id": 2,
"created_at": "2023-02-01T12:51:32.000000Z",
"updated_at": "2023-02-01T12:51:32.000000Z",
"pivot": {
"student_id": 35,
"course_id": 25
}
},
"subjects": [
{
"id": 11,
"name": "matematicas",
"course_id": 25,
"created_at": "2023-02-01T13:00:47.000000Z",
"updated_at": "2023-02-01T13:00:47.000000Z"
}
]
}
但我希望它被显示为一门课程,里面有一系列的科目。
1条答案
按热度按时间xlpyo6sf1#
理想情况下,您应该尝试创建课程的responseDto,即CourseDto Now CourseDto将具有课程中存在的所有属性(字段)。
CourseDto还将包含另一个字段,即受试者列表。
现在将subject和course的响应输出Map到CourseDto。
然后返回CourseDto的json响应