CakePHPで、新規作成時に、関連するModelを一緒に追加する
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に同時に追加する処理を書くと言うこと…。ここら辺も、自動化されると楽だなぁと思ったり。

最近のコメント