Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
admin_panel
/
app
/
Models
:
ExamTimetable.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Models; use Awobaz\Compoships\Compoships; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; use App\Traits\DateFormatTrait; class ExamTimetable extends Model { use HasFactory; use Compoships; use DateFormatTrait; protected $fillable = [ 'exam_id', 'class_id', 'class_subject_id', 'total_marks', 'passing_marks', 'start_time', 'end_time', 'date', 'session_year_id', 'school_id', 'created_at', 'updated_at', ]; protected $hidden = ['created_at', 'updated_at']; protected $appends = ['subject_with_name']; protected $timeOnly = ['start_time', 'end_time']; protected $dateOnly = ['date']; public function class_subject() { return $this->belongsTo(ClassSubject::class, 'class_subject_id'); } public function exam() { return $this->belongsTo(Exam::class, 'exam_id')->withTrashed(); } public function class() { return $this->belongsTo(ClassSchool::class, 'class_id')->withTrashed(); } public function session_year() { return $this->belongsTo(SessionYear::class, 'session_year_id')->withTrashed(); } public function exam_marks() { return $this->hasMany(ExamMarks::class, 'exam_timetable_id'); } public function scopeOwner($query) { if (Auth::user()) { if (Auth::user()->hasRole('Super Admin')) { return $query; } if (Auth::user()->hasRole('School Admin') || Auth::user()->hasRole('Teacher')) { return $query->where('school_id', Auth::user()->school_id); } if (Auth::user()->hasRole('Student')) { $studentAuth = Auth::user()->student; $studentAuth->selectedStudentSubjects(); $class_subject_ids = $studentAuth->selectedStudentSubjects()->pluck('class_subject_id'); return $query->whereIn('class_subject_id', $class_subject_ids)->where('school_id', Auth::user()->school_id); } if (Auth::user()->hasRole('Guardian')) { $childId = request('child_id'); $studentAuth = Students::where('id', $childId)->first(); $class_subject_ids = $studentAuth->selectedStudentSubjects()->pluck('class_subject_id'); return $query->whereIn('class_subject_id', $class_subject_ids)->where('school_id', $studentAuth->school_id); } } return $query; } public function getSubjectWithNameAttribute() { if ($this->relationLoaded('class_subject')) { if ($this->class_subject) { return $this->class_subject->subject->name . ' - ' . $this->class_subject->subject->type; } } return null; } /** * Get the subject_teacher that owns the ExamTimetable * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function subject_teacher() { return $this->belongsTo(SubjectTeacher::class, 'class_subject_id', 'class_subject_id'); } public function getStartTimeAttribute($value) { return $this->formatTimeOnly($value); } public function getEndTimeAttribute($value) { return $this->formatTimeOnly($value); } public function getDateAttribute($value) { return $this->formatDateOnly($value); } }