Holen Sie sich eine einzelne Entität aus einer Magento -Modellsammlung
-
28-10-2019 - |
Frage
Ich stoße auf ein Problem, weil ich sicher bin, dass ich das mit meiner Programmierung nicht richtig mache.
Ich habe ein benutzerdefiniertes Modell in Magento erstellt.
In der Datenbanktabelle meines Modells gibt es mehrere Entitäten mit denselben Attributen ...
Ich muss nur eine von all diesen Entitäten mit dem gleichen Attribut wie ich auswählen.
Im Moment habe ich das getan:
$myvariable = Mage::getModel('test/test')->getCollection()
->setOrder('idserialkeys', 'asc')
->addFilter('idproduit', 1)
->addFilter('utilise', 0)
->addFilter('customerid', 0)
->addFilter('numcommande', 0)
Aus diesem Laden habe ich rund hundert Ergebnisse, aber ich muss nur eines davon aktualisieren, also kurz nachdem ich es getan habe:
->setPageSize(1);
Das Problem ist, dass ich eine brauche foreach
Nachdem ich meine Entität aktualisiere
foreach($mavaribale as $modifiemoi) {
// Update of my entity because of course there is only one
}
Wie Sie sehen, bin ich verpflichtet, (für jeden) eine Schleife zu machen, auch wenn ich eine habe setPagesize
... Ich möchte diese dumme Schleife vermeiden, um meinen Code zu optimieren.
Vielen Dank für Ihre Vorschläge und einen schönen Tag.
Anselme
Lösung
Wenn Sie eine Sammlung haben und nur ein Element benötigen, verwenden Sie das getFirstItem
Methode. Versuche dies:
$modifiemoi = $myvariable->getFirstItem();
Stellen Sie sicher, dass Sie auch Ihre verwenden setPageSize
Rufen Sie an, damit Sie nur Daten für einen Element übertragen.
Ich hoffe, das hilft!
Danke, Joe
Andere Tipps
Alle Sammlungen sind Varien_Data_Collection
Objekte, damit Sie verwenden können getFirstItem
:
$modifiemoi = $mavaribale->getFirstItem();