MIF_E31230892/sim-pkpps/app/Models/KegiatanKelas.php

114 lines
2.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* Model KegiatanKelas (Pivot Model)
*
* Mengelola relasi many-to-many antara Kegiatan dan Kelas
*
* @property int $id
* @property string $kegiatan_id - Foreign key ke kegiatans
* @property int $id_kelas - Foreign key ke kelas
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
*/
class KegiatanKelas extends Model
{
use HasFactory;
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'kegiatan_kelas';
/**
* The attributes that are mass assignable.
*
* @var array<string>
*/
protected $fillable = [
'kegiatan_id',
'id_kelas',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
/**
* Relasi: KegiatanKelas belongs to Kegiatan
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function kegiatan()
{
return $this->belongsTo(Kegiatan::class, 'kegiatan_id', 'kegiatan_id');
}
/**
* Relasi: KegiatanKelas belongs to Kelas
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function kelas()
{
return $this->belongsTo(Kelas::class, 'id_kelas', 'id');
}
/**
* Scope: Filter by kegiatan
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param string $kegiatan_id
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeByKegiatan($query, $kegiatan_id)
{
return $query->where('kegiatan_id', $kegiatan_id);
}
/**
* Scope: Filter by kelas
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param int $id_kelas
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeByKelas($query, $id_kelas)
{
return $query->where('id_kelas', $id_kelas);
}
/**
* Accessor: Nama kegiatan
*
* @return string
*/
public function getNamaKegiatanAttribute()
{
return $this->kegiatan ? $this->kegiatan->nama_kegiatan : '-';
}
/**
* Accessor: Nama kelas
*
* @return string
*/
public function getNamaKelasAttribute()
{
return $this->kelas ? $this->kelas->nama_kelas : '-';
}
}