アソシエーションのまとめ(1) で書いた

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

この部分の補足です。
それぞれの意味するところは

var $hasOne = array('関連先のモデル名'=>
                array('className'  => '関連先のモデルのクラス名',
                      'conditions' => '関連を定義するSQL条件の一部',
                      'order'      => '関連先のデータの並び順',
                      'dependent'  => '関連先データの同時削除',
                      'foreignKey' => '関連先テーブル側の外部キー'
                )
              );

conditions は条件を付けて関連付けるモデルのデータを制限するときに指定する。
dependent は関連元のデータが削除されたときに、一緒に関連先のデータも削除するかどうか。
関連先のモデルで関連元のモデルの主キーを定義しているカラム名です。

dependent などはかなり便利に使えそうですね。
アソシエーションのまとめ(1) に書いたように、 foreignKey は CakePHP の命名規則に従っていれば省略可能です。

関連する投稿