Rumah > Soal Jawab > teks badan
Saya cuba mencipta pelbagai objek dalam laravel php. Setakat ini saya telah mencapai ini.
Apabila saya mengembalikan tatasusunan saya mendapat respons, saya menambah imej untuk kejelasan.
Saya mendapat output ini
Nak buat respon macam ni...
[ { "student": "Jaime Thomas", "subjects": [ { "subject": "Physics", "marks_": 0 }, { "subject": "Chemistry", "marks_": 0 } ] }, { "student": "Jaime Dey", "subjects": [ { "subject": "Physics", "marks_": 0 }, { "subject": "Chemistry", "marks_": 0 } ] } ]
$usersData = User::where('user_id', 2)->where("stud_class", $exam_details->exam_class_id)->where("XXXX", $exam_details->exam_branch_id)->get(); foreach ($exam_data as $subject) { $att_exams = MODEL::where('XXXXX', $subject->subject_id) ->where('XXXX', $user->id) ->first(); if ($att_exams) { $marks = MODEL::where('XXXX', $att_exams->attended_exams_id)->get(); $right = 0; $wrong = 0; $total_marks = $marks->sum('XXXX'); $total_negative_marks = $wrong * $subject->negative_marks; $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => $total_marks - $total_negative_marks, ); } else { $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => 0, ); } } $studentsArray["subjects"] = array($subjectsArray); } return $studentsArray;
P粉9211300672024-03-31 12:35:23
Anda boleh mencuba kod berikut:
$studentsArray = []; $usersData = User::where('user_id', 2)->where("stud_class", $exam_details->exam_class_id)->where("XXXX", $exam_details->exam_branch_id)->get(['name', 'id']); foreach ($usersData as $user) { $subjectsArray = []; foreach ($exam_data as $subject) { $att_exams = MODEL::where('XXXXX', $subject->subject_id) ->where('XXXX', $user->id) ->first(); if ($att_exams) { $marks = MODEL::where('XXXX', $att_exams->attended_exams_id)->get(); $right = 0; $wrong = 0; $total_marks = $marks->sum('XXXX'); foreach ($marks as $mark) { if ($mark->XXX== 0) { $wrong++; } else { $right++; } } $total_negative_marks = $wrong * $subject->negative_marks; $subjectsArray[] = [ "subject" => $subject->subject_name, "marks_" => $total_marks - $total_negative_marks, ]; } else { $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => 0, ); } } $studentsArray[] = [ "student" => $user->name, "subjects" => $subjectsArray ]; } return $studentsArray;