MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Php Saisie récursive de catégories dans MongoDB

EDIT :Avec toutes les nouvelles données, je comprends clairement ce que vous essayez d'accomplir.

J'ai donc modifié mon ancienne fonction, c'est une nouvelle qui devrait fonctionner directement dans votre code. Faites-le moi savoir afin que je puisse l'ajuster si nécessaire.

public function setCategories($user_id)
{
    $api = new ApiCategory($user_id);
    $cats = $api->getCategories(); // retrieves structure above

    $newCats = null;
    self::recursiveCatTree($newCats, $cats);
    $this->categories = $newCats;

    $this->save(); // save the entire array of embedded documents

    if($this->getErrors())
        var_dump($this->getErrors);

}

public static function recursiveCatTree(&$result, $parent)
{
    $children = $parent['children'];

    //we unset the children so we dont have manually set every other variable
    unset( $parent['children']);
    $result = new Category();
    $result->attributes = $parent;

    //then loop the children, if no children it wont loop
    // so it will just be an empty    array
    foreach($children as $child)
    {
       $baby = null;
       self::recursiveCatTree($baby, $child);
       $result->children[] = $baby;
    }

}