Salut, je ne pense pas répondre exactement à ta question, mais peut être que ça peut t'aider...
En gros au niveau MYSQL tu as une table catégorie.
catégorie contient id, titre, parent_id, etc.
Imaginons en objet :
tu as une fonction du genre select_table :
public function select_table($table)
{
try
{
$p = $this->bdd->query("SELECT * FROM $table");
return $p->fetchAll(PDO::FETCH_OBJ);
}
catch( PDOException $e ){die( $e-> getMessage() );}
}
Tu as instancié ta classe auparavant ( avec une variable $classe ), donc tu crées 2 variables :
$cats = $classe->select_table('categorie');
$sous_cats = $classe->select_table('categorie');
Ensuite tu fais un foreach dans un foreach :
foreach($cats as $cat)
{
if( $categorie-> parent_id == null ) // si c'est une catégorie je vais scanner l'autre variable
{
foreach( $sous_cats as $sous_cat )
{
if($cat->id == $sous_cat->parent_id)
{'A ce moment, tu as chopé les sous catégories de la catégorie cat->id'}
}
}
}
Désolé je ne connais pas cake PHP, mais en gros en PHP objet ça peut se faire comme ça...