MIF_E31221225/app/Models/Siswa.php

93 lines
1.9 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\User;
use App\Models\Kelas;
use App\Models\TugasSiswa;
use App\Models\PengumpulanTugas;
use App\Models\HasilUjian;
use App\Models\NilaiSikap;
class Siswa extends Model
{
use HasFactory;
protected $table = 'siswa';
protected $fillable = [
'user_id',
'nisn',
'nama',
'kelas_id',
'jenis_kelamin',
'alamat',
'paket_mapel_id',
'tahun_ajaran_id',
];
// Relasi ke tabel users
public function user()
{
return $this->belongsTo(User::class);
}
//thun ajar
public function tahunAjaran()
{
return $this->belongsTo(TahunAjaran::class, 'tahun_ajaran_id');
}
// Relasi ke kelas
public function kelas()
{
return $this->belongsTo(Kelas::class);
}
// app/Models/Siswa.php
public function nilaiTotalMapel()
{
return $this->hasMany(NilaiTotalMapel::class, 'siswa_id');
}
// Relasi ke hasil ujian
public function hasilUjian()
{
return $this->hasMany(HasilUjian::class, 'siswa_id');
}
// Relasi ke tugas siswa (kalau dipakai)
public function tugasSiswa()
{
return $this->hasMany(TugasSiswa::class, 'siswa_id');
}
// Relasi ke pengumpulan tugas
public function pengumpulanTugas()
{
return $this->hasMany(TugasSiswa::class, 'siswa_id', 'id');
}
// Relasi ke nilai sikap
public function nilaiSikap()
{
return $this->hasOne(NilaiSikap::class, 'siswa_id');
}
public function paketMapel()
{
// Asumsikan foreign key di tabel siswa adalah 'paket_mapel_id'
return $this->belongsTo(PaketMapel::class, 'paket_mapel_id', 'id');
}
public function peringkatPaket()
{
return $this->hasOne(PeringkatPaketMapel::class);
}
public function angket()
{
return $this->hasOne(AngketSiswa::class, 'siswa_id', 'id');
}
}