Wie kann ich in der Kategorie view.phtml, wenn ich die Kategorie erhalte und dann eine Produktsammlung erhalte, das erste Produkt aus der Sammlung abrufen, die $ _product zur Verwendung im Code zugewiesen ist? Folgendes habe ich:
$_category = $this->getCurrentCategory();
$_collection = $_category->getProductCollection();
$_product =
$_resource = $_product->getResource();
Ich habe versucht, foreach zu verwenden, habe aber immer wieder Fehler erhalten.
$_product = $_collection->getFirstItem()
Antworten:
Um das erste Element in einer Sammlung zu erhalten, verwenden Sie einfach die
getFirstItem()
Funktion in der Sammlung.Beispiel:
Beispiel 2 (für diese spezielle Frage):
Einige andere Bereiche, in denen dies verwendet werden kann:
Kunden
Aufträge
Bitte beachten Sie:
Es ist keine gute Idee, ALLE Produkte / Kunden / Bestellungen zu laden, da dies eine Menge Ressourcen in Anspruch nimmt. Die bevorzugte Methode besteht darin, das zu laden, was Sie laden möchten, indem Sie die Funktionen
addAttributeToFilter()
oderaddFieldToFilter()
verwenden (siehe Beispiel unten):quelle
pzirkind hat vollkommen recht und wundert sich nur, dass sich niemand um die leistung kümmert. Wenn Sie NUR das erste / letzte Element einer Sammlung möchten, sollten Sie Ihre Abfrage immer auf Folgendes beschränken
1
:Wenn Sie nur "using" auswählen,
getFirstItem()
wird trotzdem die gesamte Sammlung geladen, und danach wird der erste Artikel angezeigt.Beispiel : Kategorie mit 750 Produkten
Nur
getFirstItem()
:Hinzufügen
getSelect()->limit(1)
:quelle
So erhalten Sie auch den letzten Artikel:
quelle
@pZirKind ist richtig, Sie können den ersten Artikel aus der Produktkollektion mit den nativen Methoden der Varien Collection-Klasse abrufen, z.
quelle
quelle
Versuchen Sie das bitte
quelle