Warum paginator doesnt meine benutzerdefinierten Parameter erinnern, wann ich auf Seite 2 gehen?

StackOverflow https://stackoverflow.com/questions/147995

  •  02-07-2019
  •  | 
  •  

Frage

Bei Verwendung des paginator Helfer in cakephp Ansichten, tut es Teile der URL erinnern, die speziell für meine useage sind.

Zum Beispiel:

http://example.org/users/index/moderators/page:2/sort:name/dir:asc

hier Moderatoren ist ein Parameter, den ich von diesem Typ filtern hilft. Aber ein paginator Link drücken, wird diese Verbindung nicht enthalten.

War es hilfreich?

Lösung

Alexander Morland Antwort oben hinzuzufügen, es ist daran zu erinnern, dass die Syntax in CakePHP 1.3 geändert hat und nun:

$this->Paginator->options(array('url' => $this->passedArgs));

Dies ist weiter in der Paginierung in Ansichten Abschnitt des CakePHP Buch.

Andere Tipps

Das Geheimnis ist das Hinzufügen dieser Zeile in der Ansicht:

$ paginator-> Optionen (array ( 'url' => $ this-> passedArgs));

(Ich habe diese Frage und Antwort, weil es eine viel gestellte Frage ist, und ich halte mit der Antwort zu graben, da ich es erinnern kann nicht.)

$ this-> passedArgs ist der bevorzugte Weg, um dies aus der Sicht zu tun.

Du hast mich gerettet! Das hat mir sehr geholfen, vielen Dank.

Ich brauchte eine Möglichkeit, die Parameter zu übergeben ich ursprünglich per Post geschickt ($ this-> data) an die Paging-Komponente, so dass meine benutzerdefinierte Abfrage würde weiterhin verwendet werden.

Hier ist, was ich getan habe:

auf meiner Ansicht Ich habe

$paginator->options(array('url'=>$this->data['Transaction']));

vor der $ paginator-> zurück ( '<< Zurück' Sachen.

Dadurch wird die nächste Verbindung auf dem paginator gemacht wie " ... / Seite: 1 / start_date: 2000-01-01% 2000: 00: 00 / end_date: 3000-01-01% 2023: 59: 59 / payments_recieved: 1"

Dann auf meinem Controller Ich hatte gerade die Parameter zu erhalten und sie in den $ this-> Daten eingeben, damit meine Funktion wie gewohnt fortsetzen würde:

foreach($this->params['named'] as $k=>$v)
{
    /*
     * set data as is normally expected
     */
    $this->data['Transaction'][$k] = $v;
}

Und das ist es. Paging arbeitet mit meiner benutzerdefinierten Abfrage. :)

hier Die Optionen eine gute Führung sind ... Sie können auch für weitere Informationen überprüfen auf CakePHP Paginierung bei cakephp.org/view/166/Pagination-in-Views

Mit diesem param 'url' Sie können nur Ihre bevorzugte Zeichenfolge vor dem String Paginierung in url setzen ..

Wenn ich diese tecnique:

$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);

ich nur erhalten:

url/controller/action/?my_get1=1&my_get2=2/sort:.../...

und Kuchen verlor meine get params

Haben Sie eine alternative tecnique?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top