web-dev-qa-db-ja.com

Laravel 5.2ページ付け

この方法を使用してサイトのページ付けを行いましたが、それでもエラーが発生します。解決しようとしましたが、たくさん検索しましたが、解決策が見つかりませんでした。あなたが私を助けてくれることを願っています。

コントローラー-

class ContentController extends MasterController {


    public function content() {
$content = content::all()->paginate(10);  
$content->setPath('content'); //Customise Page Url
return view('content.boot',compact('content'));

}
}

見る -

@extends('master')
@section('content')

@if(count($content) > 0 )

@foreach($content as $row)

<video width="330" controls>
    <source src="{{ asset('videos/' . $row['video'] )}}" type="video/mp4">
</video>
@endforeach
@endif

{!! $content->render() !!} 

@endsection

ルート-

Route::get('/', 'ContentController@content');

エラー-

Macroable.phpの81行目のBadMethodCallException:
メソッドpaginateは存在しません。

8
Fadee

all()関数を削除すると、コードは次のようになります。

$content = content::paginate(10);  
15
Gouda Elalfy

Gouda Elalfyが提案しているように、all()の呼び出しを削除する必要があります。

説明

メソッドpaginate()_Eloquent\Builder_ で使用できます。これは、content::paginage(10)を呼び出すときに暗黙的に持つものです。

ただし、 content::all() は、CollectionではなくModelまたはBuilderの配列を返します。

7
Kdecherf

ここではそれを行う方法を説明しています https://laravel.com/docs/5.2/pagination そしてそれに基づいてあなたがすべきこと:
1)コントローラーで$ content = content :: all()-> paginate(10);という行を変更します。
することが
$ content = content :: paginate(10);
2)あなたの見解では、これを使用できます
{{$ content-> appends(Request :: exception( 'page'))-> Links()}}
これでやりたいことができます!!

4
H.Kontodios