function procesarTomaTemp($node = null, $oNodo = null) { $nodo = $oNodo; if (!$node->isLeaf()) { foreach ($node->children as $child) { $nodo[$child->id] = procesarTomaTemp($child); } } return $nodo; }
public function getTomas(Request $request, $red_id = 0) { $data['tipos'] = Tipo::lists('nombre', 'id'); $data['red'] = Red::with('tomas', 'tomas.nodos', 'tomas.nodos.recurso', 'tomas.nodos.categoria')->find($red_id); $categorias = Categoria::where('red_id', $red_id)->get()->toHierarchy(); $simplificado = array(); foreach ($categorias as $node) { $simplificado = simplifica($node); } $tomas = array(); foreach ($data['red']->tomas as $toma) { $nodos = array(); foreach ($toma->nodos as $nodo) { $nodos[$nodo->categoria_id] = $nodo; } $tomas[$toma->id] = $nodos; } $resultado = array(); foreach ($tomas as $toma_id => $oNodo) { foreach ($categorias as $node) { $resultado[$toma_id] = procesarToma($node, $oNodo); } } /* ini pruebas */ $resultadoTemp = array(); foreach ($tomas as $toma_id => $oNodo) { echo 'Toma: ' . $toma_id . '<br>'; foreach ($categorias as $node) { $resultadoTemp[$toma_id] = procesarTomaTemp($node, $oNodo); } } /* fin pruebas */ //dd($resultadoTemp); //dd($categorias); //dd($tomas); //dd($data['red']); //dd($resultado); dd($simplificado); return view('redes.tomas')->with('data', $data); }