Propel:使用嵌套集合聚合列......如何?

时间:2010-12-21 13:33:02

标签: php aggregate-functions propel nested-sets

我确定我错过了一些东西,因为这似乎是使用nested_set行为应该很简单的事情。

我有个商家信息,它们位于多个类别中。使用Propel中的nested_set行为管理类别类别还有aggregate_column名为listing_count,用于计算每个类别中的列表

对于每个类别,这都非常有效。我遇到的麻烦是累计该类别的每个祖先的总数。

例如,“体育”类别有3个孩子叫做“高尔夫”,“足球”和“网球”。 “网球”类别有2个孩子叫做“草”和“粘土”。当一个列表被添加到'Clay'时,我需要'Sport'和'Tennis'的总数也要更新。

我无法弄清楚实现这一目标的好方法。任何人都可以放弃任何光明吗?

1 个答案:

答案 0 :(得分:0)

也许遵循documentation(未经测试):

// increase listing_count counter for ancestors of Clay

$path = $clay->getAncestors();

foreach($path as $node)
{
  $node->setListingCount($node->getListingCount()+1);
  $node->save();
}