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'
ここで何が欠けているのかわからない、誰か助けてもらえますか?
Laravel 5では、これを試すことができる「リンク」メソッドはありません
{!! $pages->render() !!}
他のフレームワークでは、ページネーションは非常に痛みを伴う場合があります。 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。
ページネーション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() }}
$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()メソッドで配列名(項目)を使用します。それは私のために働いた。