it-swarm.com.de

Laravel 5.1 Angeben der aktuellen Seite für die Paginierung

Ich habe viel zu lange daran gearbeitet und keine Ergebnisse erzielt. Ich habe versucht.

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

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

\Paginator::setCurrentPage($current_page);

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

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

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

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

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

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

Ich hatte gehofft, es sei so einfach wie $model->find( )->paginate($per_page, $page)

17
Shane

Angenommen, Sie haben $users, um in Ihrer UserController zu paginieren, kö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 trifft auf Laravel 5.0 und höher zu. Muss das überprüfen.

31
amith.gotamey

Die Builder Class hat:

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

Du kannst anrufen 

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

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

getProducts?page=3

0
Ahmad.Net