Propel: агрегировать столбцы с вложенными множествами ... как? - PullRequest
2 голосов
/ 21 декабря 2010

Я уверен, что мне чего-то не хватает, так как это похоже на то, что должно быть просто сделать с использованием поведения nested_set.

У меня есть списки , которые находятся в нескольких категориях . категории управляются с помощью поведения nested_set в Propel. категории также имеют aggregate_column, называемый listing_count, который используется для подсчета списков в каждой категории.

Для каждой отдельной категории это работает отлично. У меня проблемы с накоплением итогов для каждого предка категории.

Например, в категории «Спорт» трое детей - «Гольф», «Футбол» и «Теннис». В категории «Теннис» двое детей - «Трава» и «Глина». Когда список добавлен в «Clay», мне также нужно обновить итоги по «Sport» и «Tennis».

Я не могу придумать (хороший) способ сделать это. Кто-нибудь может пролить свет?

1 Ответ

0 голосов
/ 07 января 2011

Возможно, следуя документации (не проверено):

// increase listing_count counter for ancestors of Clay

$path = $clay->getAncestors();

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