2012-02-25 12 views
0

私の関係は以下のとおりです。CakePHP - 深い関係からデータを取得する?次のように

User hasMany Item, Offer, Watcher 

Item BelongsTo User 
Item hasMany Offer, Watcher 

Offer/Watcher BelongTo Item & User 

私はこれを使ってユーザーのアイテムを取得しようとすると:

$this->loadModel('User', $this->Auth->user('id')); 
    $this->set('user', $this->User->read()); 

これは、ユーザーレコード、彼らはきた彼らが監視していますアイテムとアイテムを取得しますどちらが上手くいくのかを知っています。

しかし、彼らが販売しているユーザーの項目では、ウォッチャー/オファーを正しく取得しません。

私が使用している場合:$this->User->recursive = 2;それはuser_idを取得するだけですが、ユーザープロファイルにはまったく関連付けません。

例:

http://pastebin.com/9A8k7rDs

私が個別にモデルを含む、データをそのように取得することによって、この情報を得ることができ、それは、そのようなハックです。

誰かがもっと良い方法を知っていたのだろうか?私の関係が正しい場合でも:z?

答えて

0

私はそれを手に入れました!

私はそれは私が望んでいたし、少し余分なので、私は収容可能動作とが制御データを返さ$this->Item->recursive = 2;

$this->User->Item->find(...)を使用。

ありがとうございます!

+0

見つけました。私は再帰を2とする必要はありませんでした。 – robingchan

0

すべてのモデルにリレーションシップが設定されていますか?意味は、Userモデルだけでなく、Item、Watcher、Offerモデルでも関係を持つ必要があるということです。

+0

はい。すべてのモデルにhasManyとbelongsToがあります。 – robingchan

関連する問題