簡體   English   中英

¿如果另一個相關表中不存在該記錄,如何避免分頁中的記錄? CAKEPHP

[英]¿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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM