2

我确定我遗漏了一些东西,因为这看起来应该很容易使用这种nested_set行为。

我有多个类别的列表。这些类别使用​​ Propel中的行为进行管理。类别也有一个调用,用于计算每个类别中的列表nested_setaggregate_columnlisting_count

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

例如,“Sport”类别有 3 个子项,分别称为“Golf”、“Football”和“Tennis”。“网球”类别有 2 个孩子,分别称为“草”和“粘土”。将列表添加到“Clay”时,我还需要更新“Sport”和“Tennis”的总数。

我想不出一种(好的)方法来实现这一点。任何人都可以解释一下吗?

4

1 回答 1

0

也许遵循文档 (未测试):

// increase listing_count counter for ancestors of Clay

$path = $clay->getAncestors();

foreach($path as $node)
{
  $node->setListingCount($node->getListingCount()+1);
  $node->save();
}
于 2011-01-07T12:02:33.630 回答