我有一个产品对象,我对对象进行了评级,它代表了一个产品的评级。评级有一个名为“value”的属性,它是1到5的整数。
对于给定的产品,我想获得所有评级的平均值。我知道如何获得所有评级:
$product->getRatingsRelatedByFromProductId();
但是如何获得所有评级的平均值
答案 0 :(得分:3)
对于最新版本(Propel 1.5),以下是doc:http://www.propelorm.org/wiki/Documentation/1.5/ModelCriteria#AddingColumns
中的示例$authors = AuthorQuery::create()
->join('Author.Book')
->withColumn('COUNT(Book.Id)', 'NbBooks')
->groupBy('Author.Id')
->find();
foreach ($authors as $author) {
echo $author->getName() . ': ' . $author->getNbBooks() . " books\n";
}
我猜您可以轻松地用AVG(),MIN(),MAX()或任何其他聚合函数替换COUNT(),如果需要,可以删除->groupBy()
。