2016-04-06 1 views
0

Hallo,Wie ein korrektes Ergebnis eines Modells getSize() nach einem getSelect() bekommen -> limit()

Derzeit versuche ich eine benutzerdefinierte erweiterte Suche, um zu erstellen zeigen nur X spezifische Produkte.

Wenn mein Modell gefiltert wird, und sie sind mehr als die Zahl erwartet, beschränke ich sie mit:

$collection->getSelect()->limit(X); 
$collection->load(); 

Wenn ich mit einem count($collection) überprüfen, habe ich ohne Überraschung X. Aber, wenn ich mit überprüfen a $collection->getSize(), bekomme ich die genaue vorherige Nummer , als ob ich nicht das Limit (X) getan hätte.

Gibt es eine Möglichkeit zu „zwingen“ die getSize(), um betrachten die Grenze, oder einen Weg zu Grenze der Produktsammlung, um eine korrekte Größe zu bekommen?

Vielen Dank für Ihre Zeit,

PS:

  • Versuchte mit $collection->setPage(0,X)

  • mit $collection->setPageSize(X)->setCurPage(1); Versuchte

  • verwende ich ein Singleton von Mage_CatalogSearch_Model_Advanced rewrited

  • Diese Singleton-Sammlung wird mit addFilters() gefiltert und funktioniert wie erwartet.

Antwort

0

Ich glaube, Sie verwenden müssen: $ Kollektion-> count();

0

Versuchen: $collection->setPageSize(5)->setCurPage(1);

+0

Vielen Dank für Ihre Antwort. Leider bekomme ich das gleiche Ergebnis wie setPage (0,5) oder limit (5). Es gibt 5 Produkte, aber viel mehr als Ergebnis von getSize(). Irgendwelche anderen Ideen bitte? – phlesaux

+0

Sind Sie sicher, dass es keinen anderen Fehler gibt? Wenn Sie den Code verwenden, den ich Ihnen gegeben habe und dann 'print_r ($ collection-> getAllIds());' Was ist die Ausgabe? –

+0

getAllIds() dieser $ Sammlung geben Sie mir eine Reihe von 62 Produkt-ID. Es ist sicherlich ein Fehler, wenn es nicht so funktioniert, wie es sollte, aber ich sehe es offensichtlich nicht. Ich habe meinen Beitrag mit weiteren Informationen im Postscriptum aktualisiert, falls das helfen könnte. Danke für Ihre Hilfe. – phlesaux

Verwandte Themen