Laravel 5.1 指定当前页进行分页
Laravel 5.1 specifing current page for pagination
为此努力了太久,没有结果。我试过了。
`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);`
returns
Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\Paginator::setCurrentPage($current_page);
returns Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\DB::getPaginator()->setCurrentPage($current_page);
returns 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);
returns 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)
一样简单
假设您有 $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'));
}
我相信这适用于 Laravel 5.0 及以上。必须检查一下。
Builder Class 有:
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
您可以拨打
Model::find(...)->paginate($per_page, ['*'], 'page', $page);
对于那些使用 api 并且他们想要在 api 中指定当前页面的人,他们可以使用像这样的额外参数:
getProducts?page=3
为此努力了太久,没有结果。我试过了。
`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);`
returns
Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\Paginator::setCurrentPage($current_page);
returns Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\DB::getPaginator()->setCurrentPage($current_page);
returns 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);
returns 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)
假设您有 $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'));
}
我相信这适用于 Laravel 5.0 及以上。必须检查一下。
Builder Class 有:
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
您可以拨打
Model::find(...)->paginate($per_page, ['*'], 'page', $page);
对于那些使用 api 并且他们想要在 api 中指定当前页面的人,他们可以使用像这样的额外参数:
getProducts?page=3