Laravel 5.1指定分页的当前页面

Sha*_*ane 19 php pagination laravel-5.1

一直在研究这个问题太长时间没有结果.我试过了.

`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);`
Run Code Online (Sandbox Code Playgroud)

回报 Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

\Paginator::setCurrentPage($current_page);

回报 Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

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

回报 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);

回报 call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'

如何指定页面?我需要手动指定它.

我曾希望它如此简单 $model->find( )->paginate($per_page, $page)

PAT*_*OMO 50

生成器类有:

public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
Run Code Online (Sandbox Code Playgroud)

你可以打电话

Model::find(...)->paginate($per_page, ['*'], 'page', $page);
Run Code Online (Sandbox Code Playgroud)

  • 效果很好。链接到“paginate()”函数的文档:https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Builder.html#method_paginate (2认同)

ami*_*mey 36

假设你必须$users在你的分页中UserController,你可能会:

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'));
}
Run Code Online (Sandbox Code Playgroud)

我相信这适用于Laravel 5.0及更高版本.必须检查.

  • 我必须使用`\ Illuminate\Pagination\Paginator :: currentPageResolver`来运行它,否则它会在当前名称空间中搜索该类.用'\ Paginator'它告诉我没有找到课程.这种方式有效! (5认同)
  • Shane,你可以在控制器的顶部"导入"这个类:`使用Illuminate\Pagination\Paginator;` (4认同)