メイン CakePHP モデル(Model)
hasOneとbelongsTo後のsave | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| KERBEROS | 投稿日時: 2007-10-22 22:35 |
Baker 常連 ![]() ![]() 登録日: 2007-9-25 居住地: 投稿: 59 |
hasOneとbelongsTo後のsave v1.1についての質問です。
二つのモデルをhasOneとbelongsToでアソシエーションを設定しただけでsaveは一発で行えるのでしょうか。 viewにおいてはアソシエーションを組めているはずなのですが、saveが行えません。 viewでアソシエーションが動作しているという事は、saveを親となるモデルで行えば保存できるという認識で正しいのでしょうか。(ひとまずこの前提だけでもご助言頂ければ助かります。) 現在複数テーブルにまたがるsaveが出来ず困っています。 下記のソースでセーブしたところpostsテーブルは編集できていますが、theatersテーブルは変化がありません。 下記はマニュアルのブログチュートリアルをアソシエートのマニュアル部分を見ながらいじったものです。 app/models/post.php app/models/theater.php app/controllers/posts_controller.php app/views/posts/edit.thtml theatersテーブル postsテーブル |
| shun | 投稿日時: 2007-10-23 10:15 |
Cake 職人 ![]() ![]() 登録日: 2006-7-14 居住地: 東京、日本 投稿: 1007 |
Re: hasOneとbelongsTo後のsave まずは、app/config/core.phpのDEBUGの値を2にして、どんなSQLができているかを確認するのはどうでしょうか。あと、
というのは、$this->data から該当するデータを参照しつつ、「Postテーブルに」書き込む、という命令です。 Theaterテーブルにも書き込みたいのであれば、 も追加する、というのではどうでしょうか。'Post/thNAME'の設定も変更必要? |
| KERBEROS | 投稿日時: 2007-10-23 15:57 |
Baker 常連 ![]() ![]() 登録日: 2007-9-25 居住地: 投稿: 59 |
Re: hasOneとbelongsTo後のsave お返事頂きありがとうございます。
無事解決いたしました。 SQLの表示については知りませんでしたので、非常に問題解決に役立ちました。 アソシエーションしたからといって連動して保存してくれるわけではないのですね・・。 マニュアルの アソシエーションの項に 引用: hasOne, belongsTo, hasMany で関連付けられているモデルを保存するのは非常に簡単です。関連するモデルの ID と、外部キーのフィールドを設定するだけです。そのあとモデルの save() メソッドを呼べば、つながっているすべてのものが正しく組み立てられます。 とあったので少し勘違いしておりました。 適切にというのは今回の設定をしてという事なのですね、恐らく。 具体的には下記の通りです。 app/controllers/posts_controller.php 副作用としてブログチュートリアルで設定したviewアクションで表示出来なくなったので、read()からfindById()に変更しました。 ご助言頂きありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



