2017-05-19 3 views
0

Articles::paginate(10) Dieser Code wird die ersten 10 Artikel zurück, was, wenn ich die nächsten 10 Artikel mit Route zurückgeben möchte? Zum Beispiel gibt die URL mypage.com/articles/2 die 2. 10 Artikel aus der Datenbank zurück.
Dies ist so weit, was ich habe:
Route:
Laravel Eloquent Paginierung Kontrolle Seitennummer mit Route

Route::get('articles/{page_number}', '[email protected]') 

Controller:

public function getArticles($page_num) 
{ 
    $perPage = 10; 
    Articles::getPaginator()->setCurrentPage($page_num); 
    $articles = Articles::paginate($perPage); 
    return $articles; 
} 

Kann ich so etwas wie Articles::pageNumber($page_number)->paginate($perPage); haben?

Antwort

1

Der Laravel-Paginator sucht automatisch in der Abfragezeichenfolge nach dem Wert page und verwendet ihn zum Paginieren der Ergebnisse. Das Ergebnis generiert auch automatisch die nächsten und vorherigen Links, um Ihnen zu helfen, sie direkt hinzuzufügen. Sie müssen nichts ändern, damit es funktioniert.

In Ihrem Fall können Sie in Ihrer Ansicht verwenden, um die Navigationsschaltflächen für die Seitennummerierung zu generieren. Aber wenn Sie die Seite manuell einstellen möchten, können Sie dies tun.

Die Standardpaginatmethode verwendet die folgenden Parameter.

public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null); 

Die Standard-Konvention ist

mypage.com/articles?page=2 
mypage.com/articles?page=3 

Auch wenn Sie $articles->links() verwenden Sie die Navigationstaste, um zu generieren, können Sie auch die CSS anpassen.

Check out https://laravel.com/docs/5.4/pagination für weitere Informationen

+0

Ich habe Fehler 'Methode setCurrentPage nicht – Newbie

+0

@Newbie mein schlecht ist exist.', es ist schon lange her, seit ich mit Paginierung gearbeitet. Ich habe meine Antwort aktualisiert und den Code getestet, um sicher zu gehen. – Sandeesh