Obtenez une entité unique à partir d'une collection de modèle de magento
-
28-10-2019 - |
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
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();