scorpion-ds
Новичок
Мне нужно получить список всех дочерних элементов дерева, начиная от указанного.
В черновом варианте, написал такую функцию:
разумеется так делать нельзя.
Хотел поступить по старинке, одним запросом получить все записи из таблицы, а потом уже на PHP построить необходимое мне дерево:
но при таком запросе я не получаю значение элемента "parent" в БД он содержит ИД родителя, но в модели это "поле-связь".
Подскажите, как мне получить значение parent или другой более правильный способ получения дерева.
P.S.: Да, дерево строится классически, то есть с использованием только "parent".
В черновом варианте, написал такую функцию:
PHP:
public function getAllChildrens($id = 0)
{
$childrens = array();
$qb = $this->createQueryBuilder('c')->select('c');
$qb
->where('c.parent = :id')
->setParameter('id', $id)
;
$rows = $qb->getQuery()->getResult();
foreach ($rows as $item)
{
$childrens[] = $item;
if(is_object($item->getParent()))
{
$childrens = array_merge($childrens, $this->getAllChildren($item->getId()));
}
}
return $childrens;
}
Хотел поступить по старинке, одним запросом получить все записи из таблицы, а потом уже на PHP построить необходимое мне дерево:
PHP:
public function getAllChildrens($id = 0)
{
$qb = $this->createQueryBuilder('c')
->select('c')
;
$rows = $qb->getQuery()->getArrayResult();
print_r($rows);
}
Подскажите, как мне получить значение parent или другой более правильный способ получения дерева.
P.S.: Да, дерево строится классически, то есть с использованием только "parent".
Последнее редактирование: