Proje: OkulUp API · Hub: OkulUp API — Conventions

OkulUp API — ClassModel Naming Gotcha

Problem

PHP’de class rezerve kelimedir. Bu yüzden model Class adını alamaz.

Çözüm

// Model adı: ClassModel (App\Models\ClassModel)
// Tablo: 'classes' ($table = 'classes' ile override)
// Namespace: App\Models\ClassModel
 
class ClassModel extends Model
{
    protected $table = 'classes';  // açıkça belirtilmesi gerekiyor
    ...
}

İlişkilerde Kullanım

// User'dan:
$user->classes()  // BelongsToMany → ClassModel döner
 
// FK: class_id → sınıf foreign key adı
$table->unsignedBigInteger('class_id');  // bigint!
 
// ClassModel bağımlılığı:
use App\Models\ClassModel;
ClassModel::where('school_id', $id)->get();

Relationship Metod Adı

Modellerde genellikle classModel() olarak adlandırılır:

public function classModel(): BelongsTo
{
    return $this->belongsTo(ClassModel::class, 'class_id');
}

Ama class() da kullanılır bazı yerlerde (Attendance, Event vb.) — PHP izin veriyor.