Al final me quedo en una sola tabla con relacion recursiva, como la tenia y el script es este
Código PHP:
Ver originalpublic function treeCategory($parent = NULL, $child = 0, $nombre = NULL)
{
$conditions = $child == 0 ? 'categoria_id IS NULL' : "categoria_id = $parent";
/* Categorias padres */
$rs = $this->find("conditions: $conditions");
if(!$rs) return;
/* Iteraccion de categorias padres */
foreach($rs as $item)
{
$path[$item->id] = Validate::isNull($nombre) ? $item->nombre : "$nombre > $item->nombre";
/* Iteraccion de categorias hijas */
$childs = $this->treeCategory($item->id, 1, $path[$item->id]);
if(count($childs) > 0) foreach($childs as $k => $v) $path[$k] = $v;
}
return $path;
}
Yo utilizo un FW pero la idea se puede captar muy bien, si alguien tiene algo mejor estaria muy bien que lo comentara.
Saludos!