Я определил самоссылаемый объект: Категория , как показано в документе .
По сути, он создает несортируемое дерево.
Какой DQL-запрос я должен выполнить, чтобы выбрать всех родителей, родительских родителей ....?
РЕДАКТИРОВАТЬ: В настоящее время я выбираю все категории, оставляя присоединение к их родителям.Затем я использую метод сущностей для извлечения всех предков без дополнительных запросов:
public function hereToRoot( $allCategories )
{
$ancestors = array();
$leftJoinedParent = $this->getParent();
//add parents
while ( !is_null($leftJoinedParent) ) {
$nextAncestor = $allRoles[$leftJoinedParent->getId()];
$ancestors[] = $nextAncestor;
$leftJoinedParent = $nextAncestor->getParent();
}
return array_reverse($ancestors);
}