我确定我错过了一些东西,因为这似乎是使用nested_set
行为应该很简单的事情。
我有个商家信息,它们位于多个类别中。使用Propel中的nested_set
行为管理类别。 类别还有aggregate_column
名为listing_count
,用于计算每个类别中的列表。
对于每个类别,这都非常有效。我遇到的麻烦是累计该类别的每个祖先的总数。
例如,“体育”类别有3个孩子叫做“高尔夫”,“足球”和“网球”。 “网球”类别有2个孩子叫做“草”和“粘土”。当一个列表被添加到'Clay'时,我需要'Sport'和'Tennis'的总数也要更新。
我无法弄清楚实现这一目标的好方法。任何人都可以放弃任何光明吗?
答案 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();
}