[英]¿How to avoid record from a table in pagination if this record is not present in another related table? CAKEPHP
我懷疑在CakePHP中進行分頁。
好吧,我會盡量簡潔。
我有三個表,其中一個表是我分頁的(第一個表),另一個表(第二個表)與此表相關(第一個表具有FK到第二個表),而最重要的第三個表具有FK到第一個表。 因此:第三張表->第一張表->第二張表。 我從他的控制器對第一個表(模型)進行分頁,到目前為止一切正常,分頁列出了表bd中的所有記錄,沒有問題。
我還需要從第一張表中獲取記錄,但要從第二張表中的記錄進行排序。 沒問題。 問題是 :我不想分頁,從第1個表(我將其分頁)記錄在第3個表中。
問題在於,CAKEPHP首先進行查詢以從第一張表+第二張表中獲取記錄。 此后,它根據從第一個查詢獲得的記錄(PK)從第三張表中獲取記錄,因此我不能說:不從第一張表中獲取第三張表中沒有的記錄。
我怎樣才能做到這一點?
我希望我能解釋。
非常感謝你。
問候。
您要使用的是計數器緩存。 轉到http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html並搜索“ counterCache”,您將找到說明。
基本上,您想在模型1中實現一個“計數器緩存”字段,該字段會自動保留模型3中鏈接記錄的數量。然后,要從模型1中排除在模型3中沒有相關記錄的記錄,您只需添加分頁條件,表示計數器緩存字段必須大於0。
更新:
如果您不能使用CakePHP的計數器緩存,則應使用虛擬字段模擬計數器緩存的行為-請參見http://book.cakephp.org/2.0/en/models/virtual-fields.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.