CakePHPのリファレンスによると、
hasOne, belongsTo, hasMany で関連付けられているモデルを保存するのは非常に簡単です。関連するモデルの ID と、外部キーのフィールドを設定するだけです。そのあとモデルの save() メソッドを呼べば、つながっているすべてのものが正しく組み立てられます。6.4 アソシエーション
とあるので、
function edit(){
if (!empty($this->data)){
if ($this->Profile->save($this->data)){
$this->flash('更新完了', '/posts');
return;
}
}
}のようなコードを書けばProfileにblongsToでつながったUserも更新できると思ったら、そうでもないらしい。
$this->Post->save($this->data))というのは、
$this->data から該当するデータを参照しつつ、「Postテーブルに」書き込む、という命令です。"hasOneとbelongsTo後のsave" フォーラム - CakePHP Users in Japanということらしく、いくらhasOneやhasMany、belongsToなどで関連付けされても、データの更新時(UPDATE)はそれぞれのモデルに対してsaveを行う必要があるらしい。

コメントする