2010-10-07 3 views
3

Nous avons donc essayé de charger un produit à travers une collection avec certains critères, nous n'avions pas le sku ou l'identifiant ainsi quand nous avons fait ce qui suitMagento: différence entre le produit de chargement grâce à la collecte que le modèle produit

$prodModel->getCollection() 
     ->addAttributeToFilter('visibility', $visibility) 
     ->addAttributeToSelect('*') 
     ->addCategoryFilter($cat) 
     ->addAttributeToFilter('attribute_1', $sattribute_1) 
     ->addAttributeToFilter('attribute_2', $attribute_2) 
     ->addAttributeToFilter('type_id', 'configurable') 
     ->load() 
     ->getFirstItem() 

En faisant cela, nous avons eu le produit que nous voulions mais pour une raison quelconque, il n'avait pas tous les attributs, même si nous avons spécifié "*" pour tous les attributs. Plus précisément, celui que nous ne recevions pas était l'attribut de galerie de médias. Ce que nous avons fini par faire est de dire getFirstItem() -> getId() puis chargé le produit et ça a marché.

Je ne comprends pas whey en train de charger le produit avec le modèle de produit de catalogue aurait plus de caractéristiques.

+2

Je ne connais pas la réponse à votre question, mais je peux confirmer que Magento s'est toujours comporté de cette façon. Il a été nécessaire d'effectuer une 'load()' sur le produit individuel. Je n'ai jamais vu le sélecteur d'attribut ''*' ', l'avez-vous vu dans le code de Mage, ou quelque chose que vous essayez? –

+0

Nous l'avons utilisé tout le temps, je l'ai vu dans de nombreux exemples de peuples lors du chargement des collections. Je pourrais même essayer de charger l'attribut de galerie de médias et il ne le ferait toujours pas, je suppose que je devrais faire une jointure? Mais voilà pourquoi je veux savoir la différence entre faire un produit de cette façon à travers une collection et le charger –

Répondre

1

Je comprends que vous avez demandé comment obtenir tous les attributs, mais je remarque que vous mentionnez également l'attribut de galerie média spécifiquement. Il existe un raccourci pour obtenir l'URL finale de l'image du produit.

(string)Mage::helper('catalog/image')->init($product, 'media_gallery'); 

L'association à une chaîne appelle __toString qui exécute l'habileté. Vous pouvez également appliquer le redimensionnement, la rotation, les filigranes, etc. immédiatement après l'initialisation.

Questions connexes