web-dev-qa-db-ja.com

laravel 5?でページネーションを使用するには?

laravel4アプリケーションをlaravel 5に移植しようとしています。以前のバージョンでは、次のメソッドを使用してページネーションURLを生成できました。

コントローラー内

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

データ配列をビューと共有した後、ユーザーが

ビュー内

{{$pages->links()}}

In laravel 5その結果、次のエラーが発生します

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'

ここで何が欠けているのかわからない、誰か助けてもらえますか?

25
Sojan V Jose

Laravel 5では、これを試すことができる「リンク」メソッドはありません

{!! $pages->render() !!}
61

他のフレームワークでは、ページネーションは非常に痛みを伴う場合があります。 Laravel 5は簡単です。それを使用するには、まずデータベースからデータを呼び出すコントローラーコードを変更する必要があります。

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

...その後、このコードを使用できます。

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

これにより、シンプルなLaravel 5 beauty。

6
David

ページネーションLaravel 5.6.26、ページネーションの場合、コントローラーは次のとおりです。

コントローラーコード( https://laravel.com/docs/5.6/pagination#basic-usage

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

ブレードへのフロントエンド(表示)( 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>

配列項目ではなくrender()またはlinks()メソッドで配列名(項目)を使用します。それは私のために働いた。

0
Jose Mhlanga