web-dev-qa-db-fra.com

Comment utiliser la pagination dans laravel 5?

j'essaie de porter mon application laravel4 vers laravel 5. Dans la version précédente, je pouvais utiliser la méthode suivante pour générer des URL de pagination.

Dans le contrôleur:

$this->data['pages']= Page::whereIn('area_id', $suburbs)->where('score','>','0')->orderBy('score','desc')->paginate(12);

et après avoir partagé le tableau de données avec la vue, je pourrais utiliser

En vues:

{{$pages->links()}}

In laravel 5 ce qui se traduit par l'erreur suivante

ErrorException in AbstractPaginator.php line 445:
call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Support\Collection' does not have a method 'links'

je ne sais pas ce qui me manque ici, quelqu'un peut-il m'aider?

25
Sojan V Jose

Dans Laravel 5 il n'y a pas de méthode "liens" vous pouvez essayer ceci

{!! $pages->render() !!}
61
Alasu Paul Sabrin

Dans d'autres cadres, la pagination peut être très douloureuse. Laravel 5 en fait un jeu d'enfant. Pour l'utiliser, vous devez d'abord faire un changement dans le code de votre contrôleur où vous appelez les données de la base de données:

 public function index()
{       
        $users = DB::table('books')->simplePaginate(5);
        //using pagination method
        return view('index', ['users' => $users]);
}

... après cela, vous pouvez utiliser ce code:

<?php echo $users->render(); ?>

Cela vous fera utiliser une simple Laravel 5 beauté.

6
David

Pagination Laravel 5.6.26, pour la pagination, le contrôleur est:

Code du contrôleur ( https://laravel.com/docs/5.6/pagination#basic-usage )

    posts = Post::orderBy('created_at','desc')->paginate(10);
    return view('posts.index')->with('posts', $posts);

Partie avant dans la lame (voir) ( https://laravel.com/docs/5.6/pagination#displaying-pagination-results )

   {{ $users->links() }}
4
Nadeem Qasmi
$items = SomeDataModel->get()->paginate(2); // in your controller

@foreach(items as $item)   // in your view.blade file
....echo some data here
@endforeach

<div class="pagination">
    {{ $items->render() }} or {{ $items->links() }}
</div>

Utilisez le nom du tableau (éléments) dans la méthode render () ou links () PAS l'élément du tableau. Ça a marché pour moi.

0
Jose Mhlanga