同じModelに複数の関連付け

たとえば、メッセージ機能で1つのテーブルに
 from_user_id

 to_user_id
があって、Userと2つ以上の関連付けを持つ場合の方法。


Model

関連付けの例。
fieldsの指定に注意。

var $belongsTo = array(
	'ToUser' => array(
		'className' => 'User',
		'foreignKey' => 'to_user_id',
		'fields' => array(
			'ToUser.id', 
			'ToUser.name',
		),
	),
	'FromUser' => array(
		'className' => 'User',
		'foreignKey' => 'from_user_id',
		'fields' => array(
			'FromUser.id', 
			'FromUser.name',
		),
	),
);

controller

$containの設定例

var $paginate = array(
		'conditions' => array(
		),
		'fields' => '',
		'recursive' => 1,
		'contain' => array(
			'ToUser',
			'FromUser',
		),
		'limit' => 20,
		'order' => array(
			'Message.modified' => 'desc'
		),
	);