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.
Related
- veritabani-sema — classes tablosu FK kuralı
- api-kod-konvansiyonlari — genel model pattern