CakePHPには、非常に強力なアソシエーションという機能があります。 これは相互に関連する複数のModel(テーブル)を一括して扱うための優れた仕組みです。 便利なアソシエーションですが、マニュアルを読んで理解したつもりでも、実際に活用する段になって、どのように設定すればよいのか迷うことがあります。 CakePHPに不慣れな方がアソシエーションで迷っていたときに、どのように教えてあげると分かりやすいのかという視点で、アソシエーションについてまとめてみました。 ここではHABTM(Has And BelongsTo Many)については触れません。それはまた別の機会で。 よくある勘違い 一般にAとBというふたつのモデルがあったとき、AモデルがBモデルを『ひとつ持っているときはhasOne』で『複数持っているときはhasMany』と認識している場合がありますが、その理解のままだと、ときに混