/** * Busca em profundidade. * * Monta a árvore de cargos * * @param type $jobModel Cargo pai * @return array Árvore de cargos */ protected function depthFirstSearch(Job $jobModel) { $childrenArr = []; $jobArr = ['id' => $jobModel->getJobId(), 'name' => $jobModel->getJobName(), 'department' => $jobModel->getDepartment()->getDepartmentName(), 'children' => &$childrenArr]; $children = $jobModel->getChildren()->toArray(); foreach ($children as $child) { $childrenArr[] = $this->depthFirstSearch($child); } return $jobArr; }