MIF_E31221225/app/Models/Kelas.php

63 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Kelas extends Model
{
use HasFactory;
protected $table = 'kelas';
protected $fillable = [
'nama_kelas',
'tingkat',
'jurusan',
];
public function ujian()
{
return $this->hasManyThrough(
\App\Models\Ujian::class, // model tujuan
\App\Models\KelasMapel::class, // model perantara
'kelas_id', // Foreign key di KelasMapel mengarah ke Kelas
'mapel_id', // Foreign key di Ujian mengarah ke Mapel
'id', // Local key di Kelas
'mapel_id' // Local key di KelasMapel yang cocok dengan mapel_id di Ujian
);
}
public function tahunAjaran()
{
return $this->belongsTo(TahunAjaran::class, 'tahun_ajaran_id');
}
public function mapel()
{
return $this->belongsToMany(Mapel::class, 'kelas_mapel');
}
public function tugas()
{
return $this->belongsToMany(Tugas::class, 'tugas_kelas')
->withPivot('deadline')
->withTimestamps();
}
public function materi()
{
return $this->belongsToMany(Materi::class, 'kelas_materi', 'kelas_id', 'materi_id')
->withPivot('tanggal_terbit')
->withTimestamps();
}
public function siswa()
{
return $this->hasMany(Siswa::class, 'kelas_id', 'id');
}
}