0

我对在 CakePHP 中进行分页有疑问。

好吧,我会尽量简洁。

我有三张表,一张表是我分页的(第一张表),另一张表(第二张表)依赖于这张表(第一张表有 FK 到第二张表),最重要的第三张表有 FK 到第一张表. 所以:第三张桌子->第一张桌子->第二张桌子。我从他的控制器对第一个表(模型)进行分页,到目前为止一切正常,分页列出了表 bd 中的所有记录,没有问题。

我还需要从第一个表中获取记录,但按第二个表中的记录排序。没问题。问题是:我不想进入分页,来自第一个表(我对其进行分页)的记录不存在于第三个表中。

问题是 CAKEPHP 首先进行查询,从第一个表 + 第二个表中获取记录。之后,它根据从第一个查询中获得的记录(PK)从第 3 个表中获取记录,所以我不能说:不要从第 1 个表中获取第 3 个表中不存在的记录。

我怎样才能做到这一点?

我希望我解释了。

非常感谢。

问候。

4

1 回答 1

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

于 2013-10-01T12:43:56.220 回答