Laravel Paginierung mit Suchparameter
Habe ich Probleme beim Erhalt meiner Suchparameter beim Klick auf einen pagination-link. Zum Beispiel, wenn Sie eine Suche 40 Datensätze zurückgibt, und ich habe zwei Seiten, indem auf der zweiten Seite wird wieder die zweite Seite der vollständigen Menge der Datensätze, statt nur die 40, die zurückgegeben wurden durch die Suche.
Hier ist die postIndex()
von meinem controller:
public function postIndex(){
$validator = Validator::make(
Input::all(),
array('priceMin' => array('numeric'),
'priceMax' => array('numeric')
)
);
if ($validator->fails()){
return Redirect::to('items')->withInput()->withErrors($validator);
} else {
return Redirect::to('items')->withInput();
}
}
Und meine getIndex()
:
public function getIndex(){
$items= $this->retriever->getListings(Input::old(), 20);
return View::make('listings', array('items' => $items);
}
Den retriever
Objekt dann in einer Schleife durch den alten Eingang und findet alle gültige such-Parameter, Abfragen der Datenbank mit Ihnen, und paginiert mit der angegebenen Menge, 20 in diesem Fall.
Ich habe versucht, zu verwenden ->appends()
dann aber die Daten nicht in Input::old()
und es macht für eine schreckliche url, wenn es 10 Suchparameter, da es verwendet GET
und nicht POST
. Wie kann ich meine Parameter angewandt, um die Seitenzählung links?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde nie im Leben verwenden POST-Anforderung zu tun, keine Filterung/Sortierung/Suche!!! Das ist einfach falsch
Im Allgemeinen, wenn der Benutzer versucht, die Seite neu laden (suchergebnis-Seite), dass einige Daten (suchen, params) geschickt wurde, der browser fragt, ob es sollte neu laden und erneut zu senden, die Daten erneut. Ich muss nicht sagen, das ist ärgerlich, mindestens.
Lösung: stick mit Laravel-Methode, und verwenden
appends()
trotz der Tatsache, es erzeugt "hässliche" URL - dies ist eine gemeinsame Lösung, unabhängig von der framework.postIndex()
mit der search-id in der URLSearch
Modell mit Informationen aus IhremUser
. EineSearchRules
mit Bezug zuSearch
so können Sie sparen jedes such-Parametern (id, search_id, name, Wert). Nach dem speichern Umleitung der browser auf eine Seite wie /suchen/Ergebnis/1337. 1337 wird die id desSearch
. Holen Sie die Regeln für die such -, Feuer Ihre searchclass und die Ergebnisse anzuzeigen. Und auf diese Weise die url ist sauber(er) und du hast dich search statspagination
Klasse mit dieser Methode? Die->appends()
Methode nutzenGET
eher als eine andere route.