diff --git a/app/Http/Controllers/MyCoursesController.php b/app/Http/Controllers/MyCoursesController.php
index fbbd4b0..a5c04db 100644
--- a/app/Http/Controllers/MyCoursesController.php
+++ b/app/Http/Controllers/MyCoursesController.php
@@ -5,61 +5,73 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Session;
+use Illuminate\Support\Collection;
+use App\Models\courses;
+use App\Models\Module;
+use App\Models\StudentDetail;
+use App\Models\CourseAssignStudent;
+
class MyCoursesController extends Controller
{
public function showMyCourses()
- {
-
- $userId = session('student_portal_log_id')
- ?? session('student_id')
- ?? session('id')
- ?? Auth::id();
+{
+ $userId = session('student_portal_log_id')
+ ?? session('student_id')
+ ?? session('id')
+ ?? Auth::id();
-
- $student = DB::table('student_details')
- ->where('student_portal_log_id', $userId)
- ->orWhere('id', $userId)
- ->orWhere('student_id', $userId)
- ->first();
+ $student = DB::table('student_details')
+ ->where('student_portal_log_id', $userId)
+ ->orWhere('id', $userId)
+ ->orWhere('student_id', $userId)
+ ->first();
-
- if (!$student) {
- return view('mycourse', [
- 'courses' => collect([]),
- 'student' => null
- ]);
- }
-
-
- $courses = DB::table('courses')
- ->join('course_assign_student', 'courses.id', '=', 'course_assign_student.course_id')
- ->whereIn('course_assign_student.student_id', [
- $student->id,
- $student->student_id,
- $student->student_portal_log_id
- ])
- ->select('courses.*', 'course_assign_student.assigned_at')
- ->distinct()
- ->get();
-
- return view('mycourse', compact('courses', 'student'));
+ if (!$student) {
+ return view('mycourse', [
+ 'courses' => collect([]),
+ 'student' => null
+ ]);
}
+ // DB::table භාවිතයෙන් SQL join එක නිවැරදිව සිදු කිරීම
+ $courses = DB::table('courses')
+ ->join('course_assign_student', 'courses.id', '=', 'course_assign_student.course_id')
+ ->leftJoin('modules', 'courses.id', '=', 'modules.course_id') // <-- මේ පේළිය එකතු කරන ලදී
+ ->whereIn('course_assign_student.student_id', array_filter([
+ $student->id ?? null,
+ $student->student_id ?? null,
+ $student->student_portal_log_id ?? null
+ ]))
+ ->select(
+ 'courses.id as course_id',
+ 'courses.title as course_title',
+ 'courses.course_code',
+ 'modules.id as module_id',
+ 'modules.title as module_title',
+ 'modules.description as module_description',
+ 'modules.semester'
+ )
+ ->get()
+ ->groupBy('course_id');
- public function showModule($course_id)
- {
- $course = DB::table('courses')->where('id', $course_id)->first();
+ return view('mycourse', compact('courses', 'student'));
+}
- if (!$course) {
- abort(404, 'Course not found');
- }
+ // public function showModule($course_id)
+ // {
+ // $course = DB::table('courses')->where('id', $course_id)->first();
- $modules = DB::table('modules')
- ->where('course_id', $course_id)
- ->get();
+ // if (!$course) {
+ // abort(404, 'Course not found');
+ // }
- return view('module', compact('course', 'modules'));
- }
+ // $modules = DB::table('modules')
+ // ->where('course_id', $course_id)
+ // ->get();
+
+ // return view('module', compact('course', 'modules'));
+ // }
}
\ No newline at end of file
diff --git a/resources/views/mycourse.blade.php b/resources/views/mycourse.blade.php
index d8403d5..d218402 100644
--- a/resources/views/mycourse.blade.php
+++ b/resources/views/mycourse.blade.php
@@ -1,6 +1,6 @@
@extends('layouts.studentportalnav')
-@section('title', 'Course Modules')
+@section('title', 'My Courses & Modules')
@section('content')
@@ -8,40 +8,29 @@
:root {
--theme-navy: #2D355B;
--theme-red: #822424;
- --theme-red-hover: #df2c3e;
--bg-light: #F6F6F6;
--white: #ffffff;
}
-
body { background: var(--bg-light); font-family: 'Segoe UI', sans-serif; }
-
-.module-header {
+.course-header {
background: linear-gradient(135deg, #2B293F 0%, #94A6F959 100%);
color: var(--white);
- border-radius: 16px;
- padding: 30px;
- margin-bottom: 25px;
+ border-radius: 12px;
+ padding: 20px;
+ margin-bottom: 15px;
border-left: 5px solid var(--theme-red);
}
-
.module-card {
border: 1px solid #e2e8f0;
- border-radius: 12px;
+ border-radius: 10px;
background: var(--white);
- box-shadow: 0 4px 10px rgba(0,0,0,0.04);
transition: all 0.3s ease;
}
-
-.module-card:hover {
- transform: translateY(-2px);
- border-color: var(--theme-navy);
-}
-
.semester-badge {
background-color: var(--theme-navy);
color: #fff;
- font-size: 12px;
- padding: 5px 12px;
+ font-size: 11px;
+ padding: 4px 10px;
border-radius: 20px;
}
@@ -49,56 +38,65 @@ body { background: var(--bg-light); font-family: 'Segoe UI', sans-serif; }
-
-
- Back to My Courses
-
+
My Assigned Courses
-
-
+ @if(count($courses) > 0)
+ @foreach($courses as $courseId => $courseItems)
+ @php
+ $firstItem = $courseItems->first();
+ @endphp
-
Modules List
+
+
- @if(isset($modules) && count($modules) > 0)
-
- @foreach($modules as $index => $module)
-
-
-
-
- @if(!empty($module->semester))
-
- Semester {{ $module->semester }}
-
- @endif
-
-
- Module {{ $index + 1 }}: {{ $module->title }}
-
+
+
Modules
+
+
+ @foreach($courseItems as $index => $module)
+ @if($module->module_id)
+
+
+
+
+ @if(!empty($module->semester))
+
+ Semester {{ $module->semester }}
+
+ @endif
+
+
+ Module {{ $index + 1 }}: {{ $module->module_title }}
+
-
- {{ $module->description ?? 'No description provided.' }}
-
-
-
-
- View Content
-
+
+ {{ $module->module_description ?? 'No description provided.' }}
+
+
+
+
-
-
- @endforeach
-
+ @else
+
+
No modules found for this course.
+
+ @endif
+ @endforeach
+
+ @endforeach
@else
-
-
No Modules Found
-
There are no modules found for this course.
+
No Courses Assigned
+
There are no courses currently assigned to your profile.
@endif