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に同時に追加する処理を書くと言うこと…。ここら辺も、自動化されると楽だなぁと思ったり。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA