我怀疑在CakePHP中做分页。
好吧,我会尽量简明扼要。
我有三个表,一个表是我分页(第一个表),另一个表(第二个表)依赖于这个(第一个表有FK到第二个表),最重要的第三个表,有FK到第一桌。所以:第3表 - >第一表 - >第二张桌子。 我从他的控制器中对第一个表(模型)进行了分页,到目前为止一切正常,分页列表来自表bd的所有记录并没有问题。
我还需要从第一张表中获取记录,但是按第二张表中的记录排序。没问题。 问题是:我想不要加入第3个表中不存在的第1个表(我对其进行分页)的记录。
问题是CAKEPHP首先从第一个表+第二个表中获取记录。在此之后,它根据从第一个查询获得的记录(PK)从第3个表中获取记录,所以我不能说:不从第1个表中不存在第3个表中的记录。
¿我该怎么做?
我希望我解释过。
非常感谢。
问候。
答案 0 :(得分:0)
您要使用的是计数器缓存。转到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