2017-01-19 2 views
0

Je veux obtenir le chemin catéaire d'une catégorie.Magento Collection mauvais résultat

J'ai obtenu le parent et le nom de l'enfant et que je fais ce qui suit:

$categorys = Mage::getResourceModel('catalog/category_collection') 
    ->addAttributeToFilter('name', array("like" => $sCatName)) 
    ->getFirstItem() 
    ->getChildrenCategories() 
    ->addAttributeToFilter('name', array("like" => $sCatNameChild)) 
    ->addAttributeToSelect('*'); 

J'ai vérifié le résultat avec écho $categorys->getSelectSql();

Il retourne la Sql correcte, exécutez-le sur le retour sql 1 chat (correct un)

Je compte la collection et il y a 8 categorys sélectionnés là-dedans (tous les sous-marins de la société mère)

tout id ea pourquoi cela se passe-t-il?

+0

Pouvez-vous nous dire ce que vous pensez qu'il devrait être retourné? il semble que vous essayez de trouver la première catégorie parente, puis que vous trouviez tous les enfants avec un nom spécifique? –

+0

Ouais c'est exactement ce que je cherche. Tous les parents ont un nom différent donc il n'y a toujours qu'un seul parent avec des enfants différents. –

Répondre

0

En supposant que $ id est l'ID de votre catégorie. Vous pouvez obtenir le chemin comme ceci $ category = Mage :: getModel ('catalogue/catégorie') -> load ($ id); $ path = explode ('/', $ category-> getPath());

Je n'ai pas testé ce code mais il doit fonctionner

+0

J'ai résolu le problème avec une autre solution, obtenir le parent, puis filtrer l'enfant avec foreach. J'ai posé cette question car le sql retourné de la collection est vrai mais le résultat mage de la collection est faux –