2013-03-07 57 views
0

我有一個模型關係的問題,我不確定我是否應該使用hasMany或其他技術。我正在嘗試創建一個用於創建調查的應用程序。我有如下關係:解決方法:cakePHP 2.3.1:hasMany通過兩個以上的表

Topics hasMany Quests 
Quests hasMany Questoptions 

但是,當我正嘗試通過TopicsController訪問主題模型我只得到了主題和鏈接的任務,而不是Questoptions。當我訪問Quest Model時,我可以獲得所有任務和Questoptions。我如何在一個數組中使用鏈接Quest和鏈接Questoptions獲得所有主題?

的hasMany通過doesn't似乎是答案,由於it's不是一個多對多的情況...

任何想法?

+0

好吧,我自己想清楚了。我不得不給find-method一個帶'遞歸'='2'的參數數組... 'recursive'=> 2))); – 2013-03-07 11:36:08

回答

0

是的,遞歸將做的工作,但你最好使用中容納行爲:http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html

基本上,設定遞歸集,蛋糕將適用於在該模型中的所有關係的水平 - 因此可以導致您獲取的數據比您真正需要的要多,並且使您的應用程序比實際速度慢。

可封閉性更加精細,讓您可以準確選擇要執行哪些相關數據並且不想返回數據庫的任何給定請求。