Doctrine2 Отображение вложенного набора в виде таблицы с отступом

#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();
    }
}