CakePHP分页,如何根据afterFind中添加的属性进行排序?

时间:2014-01-29 17:53:49

标签: sorting cakephp pagination find paginate

在afterFind()中,我在每个记录中添加一个新属性,'distance',在那里计算。我想按这个属性排序。

目前,我可以按“距离”以外的任何其他属性进行排序。有没有办法通过在afterFind中创建的属性对Paginator进行排序?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果可能,请使用虚拟字段而不是afterFind。 afterFind的问题在于您在数据库查询后计算距离,并且您需要在数据库查询中按距离排序,以便在所有页面中对项目进行排序。使用afterfind可以做的最好的事情是按页面内的距离排序,但是第1页可以有一个距离为1的项目,第2页有一个距离为10的项目,而第3页有一个距离为2的项目,如果你得到我说的话。

相关问题