Question

Je rencontre un problème parce que je suis sûr que je ne fais pas cela correctement avec ma programmation.
J'ai créé un modèle personnalisé dans Magento.
Dans la table de base de données de mon modèle, il existe plusieurs entités avec les mêmes attributs ...
Je dois choisir un seul de toutes ces entités avec le même attribut que j'ai.
Pour le moment, je l'ai fait:

$myvariable = Mage::getModel('test/test')->getCollection()
->setOrder('idserialkeys', 'asc')
->addFilter('idproduit', 1)
->addFilter('utilise', 0)
->addFilter('customerid', 0)
->addFilter('numcommande', 0)

A partir de ce chargement, j'ai une centaine de résultats, mais je dois mettre à jour une seule de ces agents, juste après que je fais:

->setPageSize(1);

Le problème est que je besoin d'un foreach après la mise à jour de mon entité

foreach($mavaribale as $modifiemoi) {
    // Update of my entity because of course there is only one 
}

Comme vous pouvez le voir, je suis obligé de faire une boucle (pour chaque), même si j'ai setPagesize ... Je voudrais éviter cette boucle stupide pour optimiser mon code.

Merci pour vos suggestions et ont une belle journée,

Anselme

Était-ce utile?

La solution

Lorsque vous avez une collection, et vous avez seulement besoin d'un élément, utilisez la méthode getFirstItem. Essayez ceci:

$modifiemoi = $myvariable->getFirstItem();

Assurez-vous que vous utilisez aussi votre appel setPageSize afin que vous transférer uniquement les données pour un article.

L'espoir qui aide!

Merci, Joe

Autres conseils

Toutes les collections sont Varien_Data_Collection objets de sorte que vous pouvez utiliser getFirstItem :

$modifiemoi = $mavaribale->getFirstItem();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top