CakePHP分页'虚拟'字段

时间:2011-06-24 15:48:12

标签: cakephp virtual field paginate

我有一个模型及其对应的表和字段(field1,field2等)。

我有另一个模型,评论,还有它的表格和字段。其中一个字段是 item_rating ,其中用户输入0到10之间的数字来评价该项目。

这两个模型都与项目 hasMany 评论以及评论 belongsTo 相关的档案

在视图中对项目模型进行分页时,我想添加字段 item_rating 及其自己的字段,以便用户可以看到该项目的平均评分并且能够按 item_rating 排序,除了直接属于项目的所有其他字段。

要做到这一点,我认为我需要两件事:

  • 能够动态创建 item_rating 字段及其所有评分的平均值
  • 能够将该字段添加到分页中,以便用户可以看到它并按其排序

这可能吗?谁能指出我如何完成它的正确方向?或者我应该只在我的表中添加真实的 item_rating 字段,并在每次用户添加新评级时更新平均值?

提前非常感谢!

1 个答案:

答案 0 :(得分:1)

对我来说,最好的方法是在父表中使用真实字段。以下是您可以用于实现目的的行为:Aggregatable behaviour

编辑:

您可以自己执行此类功能。只需在父表中创建一个将保持平均评级的字段。然后在评级模型中的afterSave()上添加用父表格中的该字段填充平均值的功能。