Userテーブルに新規登録する時に、Userのメタ情報などが入っているUserProfileなどのテーブルに、同時にレコードを登録する方法。
データを保存する :: モデル :: CakePHPによる開発 :: マニュアル :: 1.3コレクションからのコピペですがメモ。
function add() { if (!empty($this->data)) { // User モデルのデータを保存します。 // このデータは $this->data['User'] にあります。 $user = $this->User->save($this->data); // User が保存されたら、Profile データに User の情報を追加し // 保存します。 if (!empty($user)) { // 新しく生成した User の ID は、 // $this->User->id にセットされます。 $this->data['Profile']['user_id'] = $this->User->id; // User は Profile と hasOne のアソシエーションで関連付いているので // User モデルを通して Profile モデルにアクセスできます: $this->User->Profile->save($this->data); } } }
要は、親Modelのaddに同時に追加する処理を書くと言うこと…。ここら辺も、自動化されると楽だなぁと思ったり。