CakePHP‘de modeller arasındaki ilişkilendirmeler diğer yazılarımda şurada ve şurada bahsetmiştim. Şimdi bu ilişkilendirmeleri daha ayrıntılı olarak inceleyeceğiz. CakePHP’de 4 ilişkilendirme bulunmaktadır:

  • hasOne
  • hasMany
  • belongsTo
  • hasAndBelongsToMany (HABTM)

hasOne
Bu ilişkilendirmede bir modele ait bir model bulunur.

1
2
3
4
5
6
7
<?php
class Kullanici extends AppModel
{
var $name = "Kullanici";
var $hasOne = "Profil";
}
?>

Burada Kullanici ve Profil adında iki farklı modelimiz var. İlişkilendirme sonucunda bir kullanıcının bir profili olur.

1
2
3
4
5
6
7
<?php
class Kullanici extends AppModel
{
var $name = "Kullanici";
var $hasOne = array("Profil"=>array("className"=>"Profil","dependent"=>true));
}
?>

Burada bir array kullanarak özellikleri biraz daha değiştirdik. İlk örnekteki ilişkilendirmelerde model isimlerinin de uygun olması gerekiyordu. Ama şimdi model ismini biz belirttiğimiz için sorun yok. “dependent” parametresini true yaptığımızda ise herhangi bir kullanıcı silindiğinde ona ait profil de silinir.