Yii Paginierungsvariablen aus DataProvider

8

Ich brauche bestimmte Paginierungsvariablen in meiner Controller-Aktion.

wie:

1. Aktuelle Seitenzahl

2. Aktueller Seitenversatz

3. Gesamtdatensätze angezeigt

d. 31 bis 40 von 2005 records angezeigt

Ich habe Folgendes versucht:

%Vor%

Ich kann das Paginierungsobjekt erhalten, aber null (0) in $pagination->currentPage oder $pagination->offset etc ....

Ich brauche diese Informationen, um die Metaseite title und description für Aktionen mit Seitenauflistungen wie Seitentitel dynamisch zu generieren: Seite 3 von 10 für amerikanische Rezepte ...

Schätze jede Hilfe damit.

    
Raheel Dharolia 06.11.2012, 15:46
quelle

2 Antworten

5

Versuchen Sie, die itemCount explizit in Ihrem dataProvider :

%Vor%

Oder verwenden Sie ein neues CPagination -Objekt:

%Vor%

Wie das funktioniert:

Die itemCount der Seitennummerierung wird während der Erstellung des Datenproviders festgelegt und wiederum in CSqlDataProvider s fetchData funktion:

%Vor%

Bei der Erstellung des Datenproviders werden nur die Werte verwendet, die an die Eigenschaft pagination übergeben wurden, und wenn wir itemCount value nicht übergeben, wird der Standardwert 0 verwendet.
Wenn wir also offset oder pageCount oder currentPage oder itemCount vor den Aufruf von fetchData aufrufen wollen, müssen wir itemCount explizit setzen.

Wenn wir diese Werte jedoch nach dem Aufruf von fetchData möchten, sind die Werte aufgrund des Aufrufs von setItemCount in fetchData bereits korrekt ausgefüllt.

Ein Beispiel für Klarheit (ohne itemCount während der Erstellung des Datenproviders zu übergeben):

%Vor%     
bool.dev 07.11.2012, 17:56
quelle
0

getCurrentPage gibt "den nullbasierten Index der aktuellen Seite"

zurück

Ссылка

Wenn Sie also auf der ersten Seite sind, sollte es 0 zurückgeben.

Und Sie kennen die Seitengröße und die Gesamtzahl der Datensätze, die ausreichen, um Ihren Seitentitel zu generieren.

    
caitriona 07.11.2012 15:08
quelle

Tags und Links