Postのモデル

 今回再生成して変更されたのは、以下の部分。

blog\models\post.php

//The Associations below have been created with all possible keys, those that are not needed can be removed
var $[[belongsTo]] = [[array]](
		'Category' =>
			array('className' => 'Category',
					'foreignKey' => 'category_id',
					'conditions' => '',
					'fields' => '',
					'order' => '',
					'counterCache' => ''
			),
);

var $[[hasMany]] = array(
		'Comment' =>
			array('className' => 'Comment',
					'foreignKey' => 'post_id',
					'conditions' => '',
					'fields' => '',
					'order' => '',
					'limit' => '',
					'offset' => '',
					'dependent' => '',
					'exclusive' => '',
					'finderQuery' => '',
					'counterQuery' => ''
			),
);

 関連は2次元配列で保持されている。$belongsToや$hasManyという関連タイプに応じて個別の配列になっている。
 これらの変数はAppModelの公開(public)変数で、値を入れるとフレームワークにPostとCategoryもしくはCommentがどのような関連になっているのか教えることができる。

■CakePHPでの関連タイプ
関連タイプ 説明
belongsTo 参照元のモデルから、参照先モデルへの参照。基本的に参照元に参照先の主キーを保持している
hasOne 参照先モデルから参照元モデルへの逆関連。参照先と参照元が1対1の関連である場合を意味する
hasMany 参照先モデルから参照元モデルへの逆関連。参照先と参照元が多対1の関連である場合を意味する
hasAndBelongsToMany 参照先モデルと参照元モデルが多対多の関連である場合、中間に(お互いの主キーだけを保持する)関連テーブルを持つことで1対多(もしくは多対1)になるような参照関連を表現できる。

 ただし、基本的に自動生成されるので関連の定義を直接編集することはないだろう。
 bake.phpに識別させるのに重要な情報は、関連先へは主キーで接続するということである。名前の規則は「モデル名_id」である。
最終更新:2007年05月15日 20:18