我有三種型號,用戶,評論和頁面。如何最小化CakePHP中的「包含」查詢?
用戶有許多評論和評論屬於頁。
所有型號使用containable
行爲,默認爲recursive -1
。
如果我呼籲評論一個find()
查詢,與包含請求包括頁模型的領域,這正確返回使用結果的單個查詢,自動地加入頁表給用戶。
如果我請從用戶模型類似的查詢(含有註釋和Comment.Page),其結果是到源極評論查詢,隨後每註釋查詢以請輸入相關的頁面。
有沒有辦法配置模型來維持JOIN優化?我假設相關模型的belongsTo聲明(評論)將貫穿到主機模型(用戶)。
UPDATE
我要澄清,我的問題用我的實際案例研究的簡化版本。雖然我需要的最小的解決方案將包括初始型號的hasMany型號屬於關聯型號結構,我也期待在一個或多個附加屬於關聯模型解下來的鏈(其,我雖然會自動使用LEFT JOIN,因爲這是可行的)。
嗨科爾比。你在實踐中是否有這樣的例子?正如我認爲這種方法可能有助於我自己的項目以及原始的海報。 –
我相信你的控制器中的東西會包含你對整個控制器的查詢。 'function beforeFilter() \t { \t \t parent :: beforeFilter(); \t \t $ this-> Model-> contains('RelatedModelStuff'); \t \t \t} // beforeFilter' –
感謝Colby,這並不完全是我以前的樣子,但beforeFilter包含的聲明是一個有用的片段,歡呼聲。 – Rhys