| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() | Zitat:
@archer42: Php validieren lassen, bei nicht vorhanden values würde ich mit default-Werten für die Sortierung verwenden (bspw. offset 1 + 2, order by ), dann meinen Modellayer füttern und meinen controller ausliefern lassen, was der zurückliefert. | |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() | Zitat:
Für mich sind Pagination und Abholen der Daten einfach zwei Paar Schuhe, ersteres ist dabei nur eine Angelegenheit der Präsentations-Schicht. Das heißt, bei mir kennt ein Paginations-Model nicht mal die konkreten Datensätze sondern nur die Meta-Informationen (Anzahl Daten, Anzahl Seiten, aktuelle Seite, Daten pro Seite,...). Diese können dann gleichermaßen zum konstruieren der Datenbank-Abfrage als auch zur Anzeige der Pagination (also der Navigations-Elemente) verwendet werden. Edit: das war etwas unklar ausgedrückt, also hier einmal visuell: Code: +------------+ <<use>> +------+
| Pagination |<---------| View |
+------------+ +------+
^ |
|<<create>> |<<use>>
| v
+------------+ +------------------+
| Controller |----------| EntityCollection |
+------------+ +------------------+
|
|<<use>>
v - Controller erstellt Pagination basierend auf Eingabe
+------------+ - Controller holt Daten (DB-Abfrage passiert ganz woanders)
| Data Layer | - Controller aktualisiert Pagination basiert auf tatsächlicher Anzahl
+------------+ - View greift auf Pagination und Daten unabhängig voneinander zu
Geändert von fab (02.02.2012 um 00:51 Uhr). | |
| | |
| | ||||
| Gast
Beiträge: n/a
| Zitat:
Wie würde den eine Pagination über MySQL aussehen? Welche Werte bräuchte man von MySQL (Anzahl Einträge - Was noch?) Zitat:
PHP-Code: Zitat:
Geändert von archer42 (02.02.2012 um 09:43 Uhr). | |||
|
| | |
| Erfahrener Benutzer Registriert seit: 26.05.2008
Beiträge: 200
PHP-Kenntnisse: Fortgeschritten ![]() | Also mir wäre dein Paginator viel zu unflexibel. Wenn ich die angezeigten Datensätze irgendwie einschränken müsste, bräuchte ich ja direkt wieder einen neuen Paginator. Ich würde eher eine Doctrine\ORM\Query Objekt übergeben. Der Paginator braucht sich dann nur noch darum zu kümmern der Query die Limits mitzuteilen (setFirstResult(), setMaxResults()) und die Query auszuführen.
__________________ Programming PHP |
| | |
| | |
| Erfahrener Benutzer | Ein Paginator stellt nichts dar und bestellt auch keine Daten, er limitiert eine Anzahl an verfügbaren Daten aufgrund eines Offsets und einer maximalen Anzahl an Einträgen und gibt diesen Ausschnitt weiter. Ein Paginator ist also ein Filter-Konstrukt das auf eine Existierende Menge Daten angewendet wird. Mögliche Fälle von Pagination: - Pagination via Javascript ohne Nachladen von Content: Der Paginator selbst ermittelt hier nur die Gruppierung der Daten und teilt dem View mit das es eine neue "Pseudo-Page" gibt - Pagination via Javascript mit Nachladen von Content oder Pagination via normalem Request: Der Paginator kennt hier die Offset und Max-Count-Per-Page-Daten und gibt diese bspw. an ein Model weiter, das wiederum die bestellte Menge im jeweiligen Offset an den Paginator weitergibt, jener wirft diese dann dem View hin zum darstellen. Einem flexiblen Paginator ist es egal ob du ihm ein Array mit Daten als Grundlage stellst, ein Datenbank-Repository, ein ResultSet aus einem Model, ein Sprite-Grid oder sonstwas. Er extrahiert nur beginnend mit einem offset eine (maximale) Menge X aus einem Datenpool Y.
__________________ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| jquery zwei voneinander abhängige pagination, paginator, archer42 rudygotya |