Travaille depuis trop longtemps sans résultat. J'ai essayé.
`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);`
retourne Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\Paginator::setCurrentPage($current_page);
retourne Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()
\DB::getPaginator()->setCurrentPage($current_page);
retourne 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);
retourne call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'
Comment puis-je spécifier la page? J'ai besoin de le spécifier manuellement.
J'avais espéré que ce serait aussi simple que $model->find( )->paginate($per_page, $page)
Supposons que vous ayez $users
pour paginer dans votre UserController
, vous pourriez faire:
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'));
}
Je crois que cela s'applique à Laravel 5.0 et aux versions ultérieures. Je dois vérifier ça.
Le Builder Class a:
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
Tu peux appeler
Model::find(...)->paginate($per_page, ['*'], 'page', $page);
pour ceux qui utilisent api et souhaitent spécifier la page actuelle dans api, ils peuvent utiliser un paramètre supplémentaire comme celui-ci:
getProducts?page=3