I'm trying to create an array of objects in laravel php. So far I have achieved this.
When I return the array I get the response, I added the image for clarity.
I get this output
I want to create a response like this...
[ { "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;
You can try the following code: