2012-02-25 25 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->User->Item->find(...)$this->Item->recursive = 2;

這回我想要的數據和一些額外的,所以我控制,與中容納的行爲。

謝謝!

+0

發現我不需要遞歸作爲2.可包含的行爲對我來說是這樣。 – robingchan 2012-02-27 12:36:11

0

您是否在所有模型中建立了關係?這意味着您不僅需要在用戶模型中建立關係,還需要在項目,觀察器和報價模型中建立關係。

+0

是的。在每個模型中都有一個hasMany和belongsTo。 – robingchan 2012-02-26 08:38:31