2.1.3 Ekstensi-ekstensi untuk Model

Hampir sama, Behavior digunakan untuk penggunaan model yang memiliki fungsi yang serupa. Misal, jika Anda menyimpan data user dalam struktur pohon, Anda dapat mendefinisikan model User agar bertingkah layaknya sebuah pohon, dan Anda dapat dengan mudah menghapus, menambahkan, atau menggeser node di struktur pohon Anda.

Models juga didukung oleh class lainnya yang disebut DataSource. DataSource merupakan abstraksi untuk model agar model dapat memanipulasi tipe data yang berbeda secara konsisten. Saat sumber utama data di CakePHP berasal dari database, Anda tetap dapat menulis DataSource tambahan untuk model Anda agar direpresentasikan dalam RSS feed, file CSV, entri LDAP, atau event iCal. Dengan menggunakan DataSource, Anda dapat mengasosiasi record dari sumber data yang berbeda: dibanding hanya terbatas pada SQL join, dengan DataSource Anda dapat menegaskan DataSource bahwa model LDAP Anda terasosiasi dengan banyak event iCal.

Seperti halnya controller, model dilengkapi dengan fitur callback juga:

  • beforeFind()
  • afterFind()
  • beforeValidate()
  • beforeSave()
  • afterSave()
  • beforeDelete()
  • afterDelete()

Nama dari method ini sudah cukup menjelaskan fungsi dari penggunaannya. Anda dapat memperoleh detail dari callback di bab model.