#doctrine-orm #nested-sets #doctrine-extensions
#doctrine-orm #вложенные наборы #doctrine-расширения
Вопрос:
У меня есть структура категорий (с использованием расширения вложенного дерева Gedmo для Doctrine2), как в примере: https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md#tree-entity-example
Вопрос в том, как отобразить все дерево в виде таблицы, подобной этой:
<table>
<tr>
<td>Category-1 name</td>
<td>Category-1 other data</td>
</tr>
<tr>
<td>Category-2 name</td>
<td>Category-2 other data</td>
</tr>
<tr>
<td><span class="indent">---</span>Subcategory-2-1 name</td>
<td>Subcategory-2-1 other data</td>
</tr>
<tr>
<td><span class="indent">---</span><span class="indent">---</span>Subcategory-2-1-1 name</td>
<td>Subcategory-2-1-1 other data</td>
</tr>
<tr>
<td>Category-3 name</td>
<td>Category-3 other data</td>
</tr>
</table>
Другими словами, мне нужно получить дерево в виде простого списка с параметром уровня в 1 запросе.
Я нашел способ получить список только в виде массива (getNodesHierarchy), но мне нужно иметь его в виде коллекции, как если бы я вызвал findAll()
Ответ №1:
Найдено решение:
class CategoryRepository extends NestedTreeRepository
{
public function getTreeList()
{
return $this->getNodesHierarchyQuery()->getResult();
}
}