在afterFind()中,我在每个记录中添加一个新属性,'distance',在那里计算。我想按这个属性排序。
目前,我可以按“距离”以外的任何其他属性进行排序。有没有办法通过在afterFind中创建的属性对Paginator进行排序?
谢谢!
答案 0 :(得分:3)
如果可能,请使用虚拟字段而不是afterFind。 afterFind的问题在于您在数据库查询后计算距离,并且您需要在数据库查询中按距离排序,以便在所有页面中对项目进行排序。使用afterfind可以做的最好的事情是按页面内的距离排序,但是第1页可以有一个距离为1的项目,第2页有一个距离为10的项目,而第3页有一个距离为2的项目,如果你得到我说的话。