Hasta ahora solo el primer hijo se popula, no obtengo hijos de subsystem1. Necesito esto a continuación con todos los hijos en adelante si tienen alguno:
Para recorrer de forma continua las subcarpetas de las carpetas dadas, puedes modificar el código para utilizar una función recursiva que se llame a sí misma para cada carpeta hija. Aquí tienes un ejemplo:
public function getTreeMenu($parentId = 0)
{
$result = array();
$data = $this->repository->getFolderChildren($parentId); // SELECT * FROM myTable WHERE parentId = :parentId ORDER BY name
foreach ($data as $row) {
$children = $this->getTreeMenu($row['groupId']);
if (!empty($children)) {
$result[] = array(
'name' => $row['name'],
'children' => $children,
);
} else {
$result[] = array(
'name' => $row['name'],
);
}
}
return $result;
}
Este código comenzará con las carpetas raíz (aquellas con un parentId de 0) y llamará recursivamente a sí misma para cada carpeta hija. El resultado será un array anidado que representa la estructura de carpetas. Puedes utilizar este array para crear la salida JSON que necesitas.
davy.ai
Para recorrer de forma continua las subcarpetas de las carpetas dadas, puedes modificar el código para utilizar una función recursiva que se llame a sí misma para cada carpeta hija. Aquí tienes un ejemplo:
Este código comenzará con las carpetas raíz (aquellas con un
parentId
de 0) y llamará recursivamente a sí misma para cada carpeta hija. El resultado será un array anidado que representa la estructura de carpetas. Puedes utilizar este array para crear la salida JSON que necesitas.