Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

shaher11's avatar

Export an Excel sheet in Laravel ?

I am trying to Export an Excel sheet but I have a problem with this line

$row[]=$student['student']['user']['en_name'];

This is the relation between user and student

public function user()
    {
        return $this->belongsTo(User::class,'user_id', 'id');
    }
public function getStudentExposrtGrades($course)
    {
         //to get offering grade items heading grades
         $courseModel=Course::find($course);
         $columns=$courseModel->gradeItems()->pluck('grade_items.id')->toArray();
         $query=[];
         $courseStudentsGrades=CourseStudent::select('id','student_id','course_id')
         ->with('student:id,student_code','gradeItemCourses:id','student.user:id,en_name')
         ->where('course_id',$course)
         ->get()->toArray();
         foreach($courseStudentsGrades as $student){
             $row=[];
             $row[]=$student['student']['student_code'];
             $row[]=$student['student']['user']['en_name'];
             $totalGrades=0;
                $row[]=$student_grade;
             }
         }
         return $query;
        //dd($query);
   
    }
0 likes
3 replies
shaher11's avatar

@Sergiu17 can't get en_name from users table for this student the relation between user and student is one to one students table has user_id

Sinnbeck's avatar

Why are you converting it to array here?

->get()->toArray();
$courseStudentsGrades=CourseStudent::select('id','student_id','course_id')
         ->with('student:id,student_code','gradeItemCourses:id','student.user:id,en_name')
         ->where('course_id',$course)
         ->get();
         foreach($courseStudentsGrades as $student){
             $row=[];
             $row[]=$student->student->student_code;
             $row[]=$student->student->user->en_name;
             $totalGrades=0;
                $row[]=$student_grade; //this variable does not exist?!
                $query[] = $row; //did you mean to add the row here?
             }
         }

Also you never actually alter $query?

Please or to participate in this conversation.