今回は belongsTo です。
CakePHP アソシエーションのまとめ(1) で hasOne をやりましたが、belongsTo はその逆です。

まとめ(1) で使用したテーブルで説明すると、Profile モデルにUser モデルを関連付けるのが belongsTo になります。

profile.php

<?php
class Profile extends AppModel {
    var $name = 'Profile';
    var $belongsTo = array('User' =>
                        array('className'  => 'User',
                              'conditions' => '',
                              'order'      => '',
                              'foreignKey' => 'user_id'
                        )
                      );
}
?>

配列のそれぞれの意味は CakePHP アソシエーションのまとめ(2) に説明があります。

これで、
$this->profile->findById($id);
とかすると、Profile モデルの該当するID のデータ内容とそのProfile モデルの元の User モデルのデータが取得できます。

もちろん、CakePHP の命名規則に従っていれば、

profile.php

<?php
class Profile extends AppModel {
    var $name = 'Profile';
    var $belongsTo = array('User');
}

?>

でもいけます。

6.4. アソシエーション

関連する投稿