【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

CakePHPについて質問です(Ver.2.2)複数テーブルのアソシエーションについてなのですが、下記のようなアソシエーションは可能でしょうか?

[使用テーブル]
Post、Recommend、UserMaster、UserDetail
[結合キー]
(1)Post.id = Recommend.post_id
(2)User.id = Post.user_id
(3)User.id = UserDetail.user_id

つまり、Post.php内にてPost以外で紐づいているテーブル同士を結合が可能かどうかを知りたいです。((1)(2)はPostテーブルと紐づいているが、(3)はPostテーブル以外同士で紐づいている)

下記方法にて(1)(2)は実現できたのですが、(3)の方法が見つかりませんでした。

--
class Post extends AppModel {
$belongsTo = array('User');
$hasOne = array('Recommend');
(略)
--

不明点あればご説明します。どうぞよろしくお願いします。

A 回答 (1件)

アソシエーションが適切に書かれているならば可能です。


findするときにrecursiveを2にしたらお望みの結果が得られると思います。

どうしても出来ないならばアソシエーションの記述に誤りがあると思います。
その構造ならbakeで自動生成できるはずなので(元のファイルはリネームして保管するなどして)bakeし直してみるのも良いかと。
    • good
    • 0
この回答へのお礼

なるほど、recursiveがポイントなんですね。早速試してみようと思います。

お礼日時:2013/01/25 21:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報