Laravel 5.1 gibt die aktuelle Seite für die Paginierung an

Lesezeit: 3 Minuten

Habe viel zu lange daran gearbeitet, ohne Ergebnis. Ich habe versucht.

`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);`

kehrt zurück
Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

\Paginator::setCurrentPage($current_page);

kehrt zurück Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

\DB::getPaginator()->setCurrentPage($current_page);

kehrt zurück call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'

$tmp = new Post( ); $tmp->getConnection()->setCurrentPage($current_page);

kehrt zurück call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'

Wie kann ich die Seite angeben? Ich muss es manuell angeben.

Ich hatte gehofft, dass es so einfach sein würde $model->find( )->paginate($per_page, $page)

  • Ich habe auch dieses Problem, ich lasse es dich wissen, wenn ich es hinbekomme

    – Adam

    1. August 2015 um 13:18 Uhr


Benutzer-Avatar
PATROMO

Das Baumeister Klasse hat:

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

Du kannst anrufen

Model::find(...)->paginate($per_page, ['*'], 'page', $page);

  • Ja, dieser Ansatz ist besser. Danke @PATROMO.

    Benutzer1880576

    5. März 2017 um 0:50 Uhr


  • Genial. Danke @Patromo.

    – Christian Szardenings

    6. März 2017 um 10:41 Uhr

  • Funktioniert prima. Link zu Dokumenten für die paginate() Funktion: laravel.com/api/5.5/Illuminate/Database/Eloquent/…

    – Lemminge19

    29. November 2017 um 15:59 Uhr

  • Tolle Lösung.

    – Kong LB

    22. August 2018 um 6:57 Uhr

Angenommen, Sie haben $users in Ihrem paginieren UserControllerkönnten Sie Folgendes tun:

public function index()
{
    $currentPage = 3; // You can set this to any page you want to paginate to

    // Make sure that you call the static method currentPageResolver()
    // before querying users
    Paginator::currentPageResolver(function () use ($currentPage) {
        return $currentPage;
    });

    $users = \App\User::paginate(5);

    return view('user.index', compact('users'));
}

Ich glaube, das gilt für Laravel 5.0 und höher. Muss das prüfen.

  • Ich musste es mit ausführen \Illuminate\Pagination\Paginator::currentPageResolver andernfalls wird im aktuellen Namensraum nach der Klasse gesucht. Mit `\Paginator’ sagte es mir, dass die Klasse nicht gefunden wurde. So funktioniert es!

    – Shane

    6. August 2015 um 11:13 Uhr


  • Shane, das hättest du tun können imported die Klasse oben auf Ihrem Controller: use Illuminate\Pagination\Paginator;

    – amith.gotamey

    8. August 2015 um 5:10 Uhr


  • Perfekt. Vielen Dank.

    – Iftakharul Alam

    11. Juli 2016 um 6:35 Uhr

  • Ihrem Code sollte eine if-Bedingung hinzugefügt werden, um zu prüfen, ob der Benutzer zu einer anderen Seite geht oder auf derselben Seite hängen bleibt.

    – Kelvin niedrig

    30. Oktober 2017 um 3:19 Uhr

  • Dies mag zwar funktionieren, ich habe es jedoch abgelehnt, da dies umgeht, indem einfach der Parameter übergeben wird, der bereits in der Methodensignatur vorhanden ist.

    – Wesley Smith

    2. Juli 2020 um 5:57 Uhr

Für diejenigen, die API verwenden und die aktuelle Seite in API angeben möchten, können sie zusätzliche Parameter wie diesen verwenden:

getProducts?page=3

  • Es hängt wirklich davon ab, wie Ihre Routen strukturiert sind und wie Sie das Framework verwenden. Der Paginator verwendet standardmäßig “first_page_url”: “/?page=1”, aber wenn Sie diese Struktur nicht verwenden, funktioniert es nicht.

    – Rodrigo Almeida

    4. Februar 2021 um 17:32 Uhr

1120410cookie-checkLaravel 5.1 gibt die aktuelle Seite für die Paginierung an

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy