Table of Contents : マニュアル

モデルの拡張

同様に、ビヘイビアはモデル間で共通の機能を追加する方法として利用できます。例えば、ユーザデータをツリー構造で保存する場合、User modelをツリーのように動作させるよう指定し、ツリー構造の中でのノードの削除、追加、移動などの機能を使うことができます。

モデルは、データソース(DataSource)と呼ばれるもう一つのクラスによっても支えられています。データソースは、異なるタイプの一連のデータについて、モデルがそれを操作できるように抽象化するものです。CakePHPアプリケーションの主なソースは、通常データベースですが、RSSフィード、CVSファイル、LDAPエントリ、iCalイベントなどをモデルが扱えるようなデータソースを追加することもできます。データソースは、異なるソースからのレコードを関連づけることも可能になっています。つまり、SQLのJoinだけに制限されているわけではなく、LDAPモデルに多くのiCalイベントを関連付けるようなことも可能です。

コントローラと同じように、モデルにもコールバックがあります:

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

これらのメソッドの名前を見れば、何をするものか分かるはずです。モデルの章で詳細について調べてください。